控制应用程序的音量和播放
确定音频流的使用
第一步,建立一个可预测的音频体验是理解你的应用程序将使用的音频流。
Android维护一个单独的音频流播放音乐,警报,通知,来电铃声,系统声音,通话音量,和DTMF音调。这样做主要是为了让用户控制每个流的音量独立。大多数这些流被限制在系统事件,所以除非你的应用程序是一个替代的闹钟,不然你几乎都是使用确定的 STREAM_MUSIC
流来播放多媒体。
使用硬件按钮来控制媒体音量
调用:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
使用硬件播放控制键来控制您的应用程序的音频播放
<receiver android:name=".RemoteControlReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
public 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 am = mContext.getSystemService(Context.AUDIO_SERVICE);
...
// Start listening for button presses
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
...
// Stop listening for button presses
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);