-
好的用户体验是可以预测的。如果你的应用程序播放音频,你的用户能使用硬件或者软件音量控制,来控制他们设备,蓝牙耳机,或者听筒的音量是非常重要的。
相似的,在适当的地方可用,播放,停止,暂停,上一首,和下一首媒体回放键,应该在你的应用使用的音频流上执行它们各自的动作。
确定在使用哪个音频流
—————————————————————————————————————————————————————————————————
创建一个可预测的音频体验的第一步是知道你的应用程序将会使用哪个音频流。
Android维护一个单独的音频流来播放音乐,铃声,消息,来电铃声,系统声音,来电,音量提升和DTMP调节。这样做的主要目的是为了允许用户来单独的控制每个流的音量。
大多数这些流都被系统事件限制,所以除非你的应用程序是闹钟的替代,你几乎肯定能使用STREAM_MUSIC流播放你的音频。
使用硬件音量键来控制你的应用个程序的音量
—————————————————————————————————————————————————————————————————
默认情况下,按音量键修改当前活动音频流的音量。如果你的应用当前没有播放任何音乐,按这个音量键调整铃声音量。
如果你有一个游戏或者音乐应用,他们想当用户按音量键的时候,是控制游戏或者音乐音量的好机会,即使他们当前在歌曲之间或者在当前游戏没有音乐播放。
你可能会尝试和并监听音量键,通过这种方法修改你的音频流的音量。抵制冲动。Android提供了便利的setVolumeControlStream()方法直接按音量键到你指定的音频流。
已经确定了你的应用程序将要使用的音频流,你应该把它设置为音频流目标。你应该在你的生命周期早期调用它—因为你仅仅需要在Activity生命周期调用它一次,你通常应该在onCreate()方法中调用它(控制你的媒体的Activity或者Fragment)。这保证你的应用在任何时候都是可见的,音量控制功能为用户所期待的。
1setVolumeControlStream(AudioManager.STREAM_MUSIC);
使用硬件回放控制键来控制你的应用程序的音频播放
—————————————————————————————————————————————————————————————————
媒体回放键,如播放,暂停,停止,上一首和先一手在一些手机和一些连接的无线耳机是有效的。无论用户什么时候按下这些键中的一个,系统广播一个包含ACTION_MEDIA_BUTTION动作的Intent。
为了响应音频按钮点击,你需要在你的清单文件中注册一个BroadcastReceiver,来监听这个广播动作,如下所示:
12345<receiver android:name=
".RemoteControlReceiver"
>
<intent-filter>
</action></intent-filter>
</receiver>
下面的代码片段显示了如何提取被按压的音频按钮,并相应的印象媒体回放:
1234567891011public
class
RemoteControlReceiver
extends
BroadcastReceiver {
@Override
public
void
onReceive(Context context, Intent intent) {
if
(Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if
(KeyEvent.KEYCODE_MEDIA_PLAY == event.getKeyCode()) {
// Handle key press.
}
}
}
}
下面的代码能在被使用在,你的应用程序使用AudioManager注册或知道你的媒体按钮事件接受者。当注册的时候,你的broadcast receiver是所有媒体按钮广播的独有接受者。
123456789AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
...
// Start listening for button presses
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
...
// Stop listening for button presses
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
一个更好的方式是注册和注销媒体播放按钮事件接受者,在你的应用程序获取和失去音频焦点的时候。这在下一个课程中详细的说明。
Android Developers:控制你的应用程序音量和播放
最新推荐文章于 2023-03-27 12:54:15 发布