java - ExoPlayer 流mp3
问题描述
我想在我的应用程序中重现 URL,但是当使用 exoplayer 库时,它会出错,而如果我使用标准媒体播放器,一切都会好起来的,并且会播放 mp3。请帮我找出我的错误并提供有用的信息。谢谢。
这是一个示例 URL 地址,它被重定向但 exoplayer 必须使用它:https ://m.z1.fm/xxx-load/22346945?play=on
这是我的代码
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(context, null,
DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF);
exoPlayer = ExoPlayerFactory.newSimpleInstance(context, renderersFactory, new DefaultTrackSelector());
DefaultHttpDataSourceFactory httpDataSourceFactory = new DefaultHttpDataSourceFactory(
URLs.getUserAgentMobile(), new DefaultBandwidthMeter(),
DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS, true);
ExtractorMediaSource mediaSource mediaSource =
new ExtractorMediaSource.Factory(httpDataSourceFactory).createMediaSource(Uri.parse(urlTrack));
exoPlayer.prepare(mediaSource);
exoPlayer.setPlayWhenReady(true);
解决方案
修改您的代码并添加 DefaultDataSourceFactory
DefaultExtractorsFactory extractorFactory = new DefaultExtractorsFactory();
DefaultBandwidthMeter BANDWIDTH_METER = new DefaultBandwidthMeter();
DataSource.Factory mediaDataSourceFactory = new DefaultDataSourceFactory(this, (TransferListener<? super DataSource>) BANDWIDTH_METER, httpDataSourceFactory);
ExtractorMediaSource mediaSource mediaSource = new ExtractorMediaSource.Factory(mediaDataSourceFactory).
setExtractorsFactory(extractorFactory).
createMediaSource(uri);
推荐阅读
- python - 日期问题 - 字符串索引必须是整数
- kubernetes - 网站在 GKE - Kubernetes 上响应“默认后端 - 404”
- sqlite - Flutter Sqlite,从数据库表中选择一个结果
- c - 选择排序未正确排序
- azure-devops - 用于 azure devops 管道构建中 API 测试的本地 SqlServer 数据库连接
- c# - 切换/加载场景时如何使用单例?
- powershell - 使用 Powershell 获取 *.lrc 以匹配它们的 *.flac 名称
- scala - spark Scala 数据框选择
- python - 错误是什么意思以及如何解决 - “ValueError:查询数据维度必须匹配训练数据维度”
- javascript - 如何在数组 JavaScript 中仅包含更新的项目