RemoteControlClient的使用
来源:互联网 发布:网络兼职宣传语 编辑:程序博客网 时间:2024/06/06 02:04
RemoteControlClient是从API 14也就是android 4.0开始出现的类,用于在锁屏状态控制音乐播放。界面是系统提供的。
api doc文档上附了一段注册代码
ComponentName myEventReceiver = new ComponentName(getPackageName(), MyRemoteControlEventReceiver.class.getName()); AudioManager myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); myAudioManager.registerMediaButtonEventReceiver(myEventReceiver); // build the PendingIntent for the remote control client Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON); mediaButtonIntent.setComponent(myEventReceiver); PendingIntent mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent, 0); // create and register the remote control client RemoteControlClient myRemoteControlClient = new RemoteControlClient(mediaPendingIntent); myAudioManager.registerRemoteControlClient(myRemoteControlClient);上面的代码开始时注册了耳机按键的事件,接着注册了RemoteControlClient。
要想弄出RemoteControlClient的界面,上面的代码还不够,还需要把当前音乐状态设置为正在播放
mClient.setPlaybackState(RemoteControlClient.PLAYSTATE_PLAYING)
并且必须获取当前的stream focus
am.requestAudioFocus(new OnAudioFocusChangeListener() {@Overridepublic void onAudioFocusChange(int focusChange) {System.out.println("focusChange = " + focusChange);}}, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
这样,在锁屏状态系统界面就能出现了,默认只有一个播放暂停按钮。要想显示额外的信息,使用editMetadata(boolean startEmpty)去put,如果想多显示几个控制按钮,如下:
int flags = RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS | RemoteControlClient.FLAG_KEY_MEDIA_NEXT | RemoteControlClient.FLAG_KEY_MEDIA_PLAY | RemoteControlClient.FLAG_KEY_MEDIA_PAUSE | RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE | RemoteControlClient.FLAG_KEY_MEDIA_STOP; mClient.setTransportControlFlags(flags);
所有按键的响应事件都在注册的receiver中。
0 0
- RemoteControlClient的使用
- android RemoteControlClient的使用
- RemoteControlClient的使用
- RemoteControlClient的使用
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- Makefile中使用$$的使用
- Red5的使用--使用日志
- prefernce的使用具体使用
- 【工具使用】git 的使用
- 关于使用AsyncTaskLoader的使用
- CoreData debug
- java中String、Long、Double等类型转换问题
- 数据挖掘->Canopy 聚类
- Android开源项目发现---ListView篇
- 欢迎加入91运营网!
- RemoteControlClient的使用
- 捏着鼻子也要吃? 吃蔬菜几大误区盘点
- 摄像头拍照上传
- 测试oracle 11g cluster 中OLR的重要性
- asp.net form认证,在IE10中获取不到cookie?
- 作业2
- MP4Box封装H265码流
- 安卓随手笔记六:(定位系统 下)
- 深入理解java异常处理机制