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:
AudioDeviceInfo.TYPE_BUILTIN_SPEAKER
: di perangkat yang memiliki speaker bawaanAudioDeviceInfo.TYPE_BLUETOOTH_A2DP
: saat headset Bluetooth tersambung dan terhubung
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.