一些 Wear OS 设备配有扬声器,使其能够支持应用发出声音,并增加了与用户互动的途径。配有扬声器的 Wear 设备可以触发时钟或定时器闹钟,并辅以音频通知。如此声色并茂,令 Wear 版游戏的娱乐性越来越强。
本页介绍了 Wear 上的应用如何使用熟悉的 Android API 通过设备扬声器播放声音。
请参阅以下相关资源:
检测扬声器
Wear 应用必须首先检测穿戴式设备是否配有扬声器。在以下示例中,应用结合 getDevices()
方法与 FEATURE_AUDIO_OUTPUT
的值确认设备是否配备了扬声器。
Kotlin
val packageManager: PackageManager = context.packageManager val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager // Check whether the device has a speaker. return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && // Check FEATURE_AUDIO_OUTPUT to guard against false positives. packageManager.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) { val devices: Array<AudioDeviceInfo> = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS) devices.any { it.type == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER } } else { false }
Java
PackageManager packageManager = context.getPackageManager(); AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); // Check whether the device has a speaker. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && // Check FEATURE_AUDIO_OUTPUT to guard against false positives. packageManager.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) { AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS); for (AudioDeviceInfo device : devices) { if (device.getType() == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) { return true; } } } return false;
播放声音
检测到扬声器后,在 Wear OS 上播放声音的过程与在手机或其他设备上相同。有关详情,请参阅媒体播放。
如果您还想通过穿戴式设备上的麦克风录制音频,则应用还必须获得使用麦克风的权限。如需了解详情,请参阅 Wear OS 上的权限。