MediaSession这种媒体框架由MediaBrowser(媒体浏览器)和MediaBrowserService(媒体浏览器服务)两部分组成。主要作用是规范了媒体服务和界面的通信接口,达到了完全解耦,可以自由、高效进行不同的媒体的切换。
1、简单描述一下:
1)MediaBrowser:媒体浏览器,用来连接服务,在连接成功的结果回调后,获取token(配对令牌),并以此获得MediaController媒体控制器。同时,有订阅并设置订阅信息回调的功能。
2)MediaController:媒体控制器,可以用mMediaController.getMetadata()等方法来主动获取媒体信息,也可以使用形如mMediaController.getTransportControls().skipToNext()来发送控制指令。其次一般需要注册MediaController.Callback回调进行客户端更新。
3)MediaBrowserService:浏览器服务,实现具体的媒体逻辑。一般在oncrete()中用setSessionToken(…)来设置token。在重写的onGetRoot(…)中判断是否允许连接,在onLoadChildren(…)中处理订阅信息。
4)MediaSeesion:设置MediaSeesion.Callback,这里就是客户端指令送达的地方。在媒体信息或状态改变后,使用形如mediaSession.setMetadata(mediaMetadata)来通知客户端。
详细链接:https://blog.csdn.net/weixin_42229694/article/details/89315026