android - Android Exoplayer 播放 UDP 流无音频
问题描述
我是 android webview 的新手,我使用 exoplayer 在 android webview 中播放视频,我播放了 2 个类别的视频,第一个 mp4,运行良好。第二个流媒体(单播 m3u8 和 UDP)视频播放良好但没有音频,我尝试在流 vlc 中播放源有音频,
这是我的代码。
private void initializePlayerMulticast(Uri mUri) {
Toast.makeText(ExoPlayer.this, "Hello bro multicast woi hehee", Toast.LENGTH_LONG).show();
player = ExoPlayerFactory.newSimpleInstance(this);
UdpDataSource.Factory test = buildDataSourceFactory();
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
ExtractorMediaSource mediaSource = new ExtractorMediaSource
.Factory(test)
.setExtractorsFactory(extractorsFactory)
.createMediaSource(mUri);
videoView.setPlayer(player);
player.prepare(mediaSource);
player.setPlayWhenReady(true);
}
private DataSource.Factory buildDataSourceFactory() {
return new UdpDataSource.Factory() {
@Override
public DataSource createDataSource() {
return new UdpDataSource(5000, 100000);
}
};
}
对不起英语不好..
解决方案
您可以使用以下代码播放 .m3u8 文件:-
Handler mHandler = new Handler();
String userAgent = Util.getUserAgent(context, "APP_NAME");
DataSource.Factory dataSourceFactory = new DefaultHttpDataSourceFactory(
userAgent, null,
DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
1800000,
true);
HlsMediaSource mediaSource = new HlsMediaSource(Uri.parse(mediaUrl),dataSourceFactory, 1800000,mHandler, null);
if (mediaUrl != null) {
videoPlayer.prepare(mediaSource);
videoPlayer.setPlayWhenReady(true);
}
推荐阅读
- kubernetes - 可以从节点访问 Kubernetes 服务,但不能从我的机器访问
- python - python麻烦在内存中反序列化avro
- python - 从 Python 访问 Netsuite 保存的搜索数据
- python - 如何从字典中的字典创建子图条形图
- javascript - 我怎样才能使它面向对象
- ios - 带有 LUA 的 Cocos2dx iOS 项目
- javascript - 从提交事件创建可观察对象
- acumatica - 报告邮件设置中的解析公式
- javascript - JS:如何在 addEventListener 中使用匿名 function.bind
- python - 如何在张量流中找到给定 CNN 中的预测概率?