Memutar audio di perangkat wearable

Panduan ini menjelaskan cara aplikasi di Wear OS dapat menggunakan API Android yang sudah dikenal untuk memutar audio.

Mendeteksi perangkat audio

Aplikasi Wear OS harus terlebih dahulu mendeteksi apakah perangkat wearable memiliki output audio yang sesuai atau tidak. Developer dapat memberitahukan bahwa salah satu atau kedua output audio berikut akan tersedia:

Dalam contoh berikut, aplikasi menggunakan metode getDevices() bersama dengan nilai FEATURE_AUDIO_OUTPUT untuk menghitung semua output audio.

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

Menunggu headset Bluetooth

Tidak seperti speaker bawaan, yang selalu tersedia jika ada di perangkat, headset Bluetooth dapat disambungkan atau dilepaskan sambungannya saat aplikasi berjalan. Aplikasi Anda dapat mendaftarkan callback untuk mendeteksi jika hal ini terjadi menggunakan 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)

Meminta pengguna untuk menghubungkan headset

Jika aplikasi memerlukan headset untuk melanjutkan, daripada menampilkan pesan error, tawarkanlah untuk mengalihkan pengguna langsung ke setelan Bluetooth guna memudahkan mereka terhubung. Tindakan ini dapat dilakukan dengan mengirimkan intent dengan 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)

Memutar audio

Setelah Anda mendeteksi output audio yang sesuai, proses untuk memutar audio di Wear OS sama dengan proses yang ada di perangkat seluler atau perangkat lainnya. Untuk mengetahui informasi selengkapnya, lihat Ringkasan MediaPlayer. Untuk memudahkan akses ke fitur lanjutan, seperti streaming dan mendownload media, gunakan ExoPlayer. Pastikan untuk mengikuti praktik terbaik untuk aplikasi Audio seperti Mengelola fokus audio

.

Menggunakan speaker

Beberapa perangkat Wear OS memiliki speaker. Izinkan speaker menggabungkan suara ke dalam aplikasi untuk perangkat tersebut dan menawarkan dimensi interaksi tambahan dengan pengguna. Misalnya, perangkat Wear OS yang dilengkapi speaker dapat memicu alarm jam atau timer, lengkap dengan notifikasi audio, dan aplikasi kebugaran mungkin menggunakan speaker untuk memberikan petunjuk latihan.

Lihat WearSpeakerSample untuk mengetahui detailnya.