Managing Audio Playback之Controlling Your App’s Volume and Playback
来源:互联网 发布:大班美工 剪纸花瓣 编辑:程序博客网 时间:2024/05/16 04:47
如果你的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);
第一步必须明白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);
0 0
- Managing Audio Playback之Controlling Your App’s Volume and Playback
- 19Controlling Your App’s Volume and Playback
- Controlling Your App’s Volume and Playback 控制应用程序的音量和播放
- Managing Audio Playback之Managing Audio Focus
- Managing Audio Playback
- Managing Audio Playback
- android-Managing Audio Playback
- Managing Audio Playback
- Android-《Managing Audio Playback》
- Managing Audio Playback之Dealing with Audio Output Hardware
- Android开发官方文档---Managing Audio Playback
- ios audio playback technologies
- video/audio playback:setDataSource
- video/audio playback:setDataSource
- video/audio playback:setDataSource
- video/audio playback:setDataSource
- video/audio playback:setDataSource
- Skype audio playback and capture problem on ubuntu 8.10
- 1. Two Sum
- PHP5.2+fastcgi安装Zend Optimizer的安装方法
- jsoup api 用法
- zabbix安装部署
- 我有博客啦!
- Managing Audio Playback之Controlling Your App’s Volume and Playback
- IntelliJ IDEA生成注册码Java代码
- window.getComputedStyle() returns null inside an iframe with display: none
- Git学习日记2
- phpcms v9二次开发及使用中各种问题解决方案(一)
- 使用MySQL
- 2558. 【NOIP2011模拟9.9】过河问题 (Standard IO)
- Docker学习日记1
- 程序死机现象原因分析