我想在应用程序中重现URL,但是当使用exoplayer库时,它会出错,而如果使用标准的mediaplayer,一切都会很好,并且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);
答案 0 :(得分:1)
修改代码并添加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);