Managing Audio Playback之Controlling Your App’s Volume and Playback

如果你的app可以播放media,那让用户通过硬件或者软件的按键来控制蓝牙耳机或者听筒就是一项很重要的用户体验.
第一步必须明白app使用的audio stream是哪一种。Android系统提供的audio stream有,music,alarms,notification,call ringer,system sound,in-call volume 和 DTMF tones.系统可以分别控制每一种audio stream的音量.这些值都可以在AudioManager 中找到.例如,setVolumeControlStream(AudioManager.STREAM_MUSIC);可以按键调整music的音量.
当用户按键来paly,pause,stop等操作是,系统会发送一个ACTION_MEDIA_BUTTON的广播,要处理这个广播你必须注册BroadcastReceive()。
要注册BroadcastReceive,首先在manifest文件中添加receive 标签.
<receiver android:name=".RemoteControlReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_BUTTON" />
    </intent-filter>
</receiver>


然后要在code中判断是按下哪个key。这个key是放在Intent的EXTRA_KET_EVENT中。如下所示:


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.
            }
        }
    }
}
判断是否发送的是paly key
通过下面的code 可以开始和停止监听media 按键.
AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);


// Start listening for button presses
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
...


// Stop listening for button presses
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值