You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓App能否播放RTMP直播流?ExoPlayer播放RTMP流问题咨询

安卓App播放RTMP直播流及ExoPlayer适配问题

一、安卓App能否播放RTMP直播流?

可以。安卓平台支持通过集成第三方组件实现RTMP流播放,RTMP作为主流直播协议,只要搭配对应的解码、播放库就能完成适配。

二、ExoPlayer能否播放RTMP流?

可以,但ExoPlayer核心库不默认包含RTMP支持,需额外集成专属扩展库,你的代码运行失败大概率是缺少该依赖导致。

问题排查与修正方案

  1. 添加RTMP扩展依赖
    在Module级别的build.gradle中引入与ExoPlayer核心版本匹配的RTMP扩展:
// 替换2.X.X为你使用的ExoPlayer核心版本号,必须版本一致
implementation "com.google.android.exoplayer:exoplayer-rtmp:2.X.X"
  1. 调整MediaSource类型
    RTMP属于直播流,更适合用LazyMediaSource适配,而非面向点播文件的ProgressiveMediaSource,修正后的代码:
ExoPlayer player = new ExoPlayer.Builder(this).build();
playerView.setPlayer(player);

Uri uri = Uri.parse("rtmp://192.168.109.84/live");
MediaItem mediaItem = MediaItem.fromUri(uri);

RtmpDataSource.Factory rtmpDataSourceFactory = new RtmpDataSource.Factory();
// 改用LazyMediaSource适配直播场景
MediaSource mediaSource = new LazyMediaSource.Factory(rtmpDataSourceFactory).createMediaSource(mediaItem);

player.setMediaSource(mediaSource);
player.prepare();
player.setPlayWhenReady(true);
  1. 额外检查项
  • 确认设备与RTMP服务器处于同一局域网,网络连接正常
  • 验证RTMP服务器正在正常推流,地址、流名称无错误
  • 确保AndroidManifest.xml已添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    

内容的提问来源于stack exchange,提问作者fadao838

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:50:41