Android最新MediaPlayer是否支持MPEG-DASH自适应流媒体播放?
Android原生MediaPlayer对MPEG-DASH的支持说明
截至最新的Android公开版本,原生MediaPlayer API仍然没有提供对MPEG-DASH协议的官方支持,你记忆中数年前仅能通过ExoPlayer实现该需求的情况目前没有变化。
核心原因
- MediaPlayer是Android系统封装的轻量基础播放组件,底层依赖Stagefright框架,仅支持本地音视频、普通HTTP渐进式流、RTSP等基础播放场景,没有内置DASH所需的MPD清单解析、多码率分片调度、自适应码率切换逻辑,无法直接加载DASH流地址播放。
- 如果你坚持要使用MediaPlayer实现DASH播放,需要自行实现MPD解析、分片下载、本地代理中转等整套逻辑,开发量远高于直接使用ExoPlayer,完全不符合你追求开发简洁性的诉求。
推荐实现方案
ExoPlayer是Android官方维护的媒体播放库,目前已经纳入Jetpack组件库,官方长期维护,兼容性和稳定性都很可靠,本身就对DASH、HLS等自适应流媒体协议做了原生支持,你提供的示例代码已经是最简实现,仅需提前在项目gradle中引入ExoPlayer依赖即可直接使用,开发成本极低:
// 创建播放器实例 SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build(); // 设置需要播放的媒体项 player.setMediaItem(MediaItem.fromUri(dashUri)); // 准备播放器 player.prepare();
内容的提问来源于stack exchange,提问作者angel_30
相关产品推荐
相关产品推荐

