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自带的锁屏界面先解锁,再到系统锁屏界面,操作繁琐。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值