车载音视频MediaPlayer优化方案

媒体播放现状

从手机到车载,在很多地方还是有很大的不同。针对多媒体的场景Android车机目前大部分结构大致结构如下图:

从以上图看出的问题:

  1. 各个音视频APP单独实现播控界面,播放链路不一致,使用的底层播放器和音频焦点管理逻辑也不一样,一方面导致界面显示和交互的一致性较差,另外播控相关的碎片化bug较多,各个模块的开发能力复用较少;
  2. 每个模块都要单独接入媒体中心,新应用适配有一定接入联调成本,且存在连接时序、重连上的稳定性问题;
  3. RSD播控需要集成每个模块提供的aar开发包,各模块间耦合和复用较差,部分没有提供aar的比如carplay、在线音乐这些rsd的播控功能缺失。

播放器优化构想

目标:

  1. 统一的媒体播放架构,包括播控UI、会话管理、播放接口、音频焦点部分。每个播放器的差异只存在于媒体列表和最终的播放接口;
  2. 逐步去除媒体中心模块作为媒体同步的核心,改用基于Android原生mediasession,通过mediasession解耦各模块,同时提高复用和稳定性。
  3. 第三方媒体播放应用,实现原生的mediasession无需其他适配,即可满足方控、Mini播放器、PSD、RSD的同步播控功能。

最终如下图所示:

具体实现说明

  • 媒体播放库选用AndroidX中的Media3,各个媒体库的对比见:Media3调研

  • 架构上可以分为client/server端,其中server端可以支持多进程;

  • 架构上也是一个分层的,分为UI、mediacontroller、sessionservice、player这4层,UI和mediacontroller在client端,sessionservice和player在server端;

主要类图如下:

原生media3 player接口描述:https://developer.android.com/reference/androidx/media3/common/Player

代码仓库:

评论区留下联系方式,会把源码和相关资料发给你

接入

统一媒体播放器接入指南

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值