웨어러블 기기에서 오디오 재생

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 가이드에서는 Wear OS의 앱이 친숙한 Android API를 사용하여 오디오를 재생하는 방법을 설명합니다.

오디오 기기 감지

Wear OS 앱은 먼저 웨어러블 기기에 적절한 오디오 출력이 있는지 감지해야 합니다. 다음 예에서는 앱이 getDevices() 메서드를 FEATURE_AUDIO_OUTPUT 값과 함께 사용하여 모든 오디오 출력을 열거합니다.

개발자는 웨어러블 기기에 다음 오디오 출력 중 하나 또는 둘 다를 사용할 수 있을 것으로 예상할 수 있습니다.

AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

fun audioOutputAvailable(type: Int): Boolean {
    if (!packageManager.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) {
        return false
    }
    return audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS).any { it.type == type }
}

audioOutputAvailable(AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) // true if the device has a speaker
audioOutputAvailable(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP) // true if a bluetooth headset is connected

블루투스 헤드셋 기다리기

기기에 있는 경우 항상 사용할 수 있는 내장 스피커와 달리 블루투스 헤드셋은 앱이 실행되는 동안 페어링되거나 페어링 해제될 수 있습니다. 앱은 registerAudioDeviceCallback을 사용하여 앱에서 이러한 상황이 발생할 때 이를 감지하는 콜백을 등록할 수 있습니다.

audioManager.registerAudioDeviceCallback(object : AudioDeviceCallback() {
    override fun onAudioDevicesAdded(addedDevices: Array<out AudioDeviceInfo>?) {
        super.onAudioDevicesAdded(addedDevices)
        if (audioOutputAvailable(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP)) {
            // a bluetooth headset has just been connected
        }
    }
    override fun onAudioDevicesRemoved(removedDevices: Array<out AudioDeviceInfo>?) {
        super.onAudioDevicesRemoved(removedDevices)
        if (!audioOutputAvailable(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP)) {
            // a bluetooth headset is no longer connected
        }
    }
}, null)

사용자에게 헤드셋을 연결하라는 메시지 표시

앱을 계속 진행하려면 헤드셋이 필요한 경우 오류 메시지를 표시하는 대신 사용자가 쉽게 연결할 수 있도록 블루투스 설정으로 사용자를 바로 안내하는 것이 좋습니다. ACTION_BLUETOOTH_SETTINGS를 사용하여 인텐트를 전송하면 됩니다.

val intent = with (Intent(Settings.ACTION_BLUETOOTH_SETTINGS)) {
    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
    putExtra("EXTRA_CONNECTION_ONLY", true)
    putExtra("EXTRA_CLOSE_ON_CONNECT", true)
    putExtra("android.bluetooth.devicepicker.extra.FILTER_TYPE", 1)
}
startActivity(intent)

오디오 재생

적합한 오디오 출력이 감지되면 Wear OS에서 오디오를 재생하는 프로세스는 모바일 또는 기타 기기와 동일합니다. 자세한 내용은 MediaPlayer 개요를 참고하세요. 미디어 스트리밍 및 다운로드와 같은 더 많은 고급 기능에 쉽게 액세스하려면 ExoPlayer를 사용하는 것이 좋습니다.

스피커 사용

일부 Wear OS 기기에는 스피커가 포함되어 있어서 앱에 사운드 효과를 주고 사용자의 몰입감을 한층 높일 수 있습니다. 스피커가 장착된 Wear OS 기기에서는 시계나 타이머 알람이 트리거되고 오디오 알림 기능을 제공할 수 있습니다. 피트니스 앱에서는 스피커를 사용하여 운동 지침을 제공할 수도 있습니다.

다음 관련 리소스를 참고하세요.