admin管理员组文章数量:1570425
目前,在锁屏界面控制音乐播放有两种常用方式。
第一种方式:原生Android系统及自带音乐播放器。
锁屏界面端:
原生Android中,锁屏界面相关的UI由KeyguardHostView提供,KeyguardHostView向KeyguardUpdateMonitor注册一个类型为 KeyguardUpdateMonitorCallback的回调, KeyguardUpdateMonitort向AudioManager.registerRemoteControlDisplay向AudioManager(AudioService)注册一个 IRemoteControlDisplay,最后注册到MediaFocusControl,当音乐播放状态变化时,将状态传上来。
KeyguardHostView根据音乐是否在播放来显示KeyguardTransportControlView。这个view提供了具体的UI,如按钮等,并且监听onClick事件,将click事件转换成keyCode, 并由RemoteController通过PendingIntent发送给注册的RemoteControlClient(创建时指定了一个PendingIntent). 在KeyguardTransportControlView中,使用RemoteController.MetadataEditor就可以获得音乐的相关信息,比如歌名等,这些信息是在音乐播放状态变化时通过回调更新的。
参考源码:
KeyguardTransportControlView.java
KeyguardHostView.java
Music APP端:
在MediaPlaybackService中,创建RemoteControlClient, 并通过AudioManager.registerRemoteControlClient(RemoteControlClient)进行注册,在注册之前,通过AudioManager.registerMediaButtonEventReceiver(ComponentName)注册事件广播接收器,就可以对按键事件进行响应处理了(具体在MediaButtonIntentReceiver中实现),比如播放下一首等。
参考源码:MediaPlaybackService.java
第二种方式:第三方APP
这种方式是有APP自身提供锁屏界面,即自己监听屏幕的关或开,从而显示带有音乐控制的锁屏界面。这种方式优势在于使控制播放的UI有更大的灵活性,而且不依赖于具体的rom。不足之处在于,在解锁时,APP自带的锁屏界面先解锁,再到系统锁屏界面,操作繁琐。
版权声明:本文标题:android 锁屏显示音乐播放器,Android锁屏界面控制音乐播放 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1727668927a1124955.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论