2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > android 锁屏显示音乐播放器 Android锁屏界面控制音乐播放

android 锁屏显示音乐播放器 Android锁屏界面控制音乐播放

时间:2023-12-20 12:43:24

相关推荐

android 锁屏显示音乐播放器 Android锁屏界面控制音乐播放

目前,在锁屏界面控制音乐播放有两种常用方式。

第一种方式:原生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自带的锁屏界面先解锁,再到系统锁屏界面,操作繁琐。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。