来自特定站点的 ExoPlayer 卡顿 url
ExoPlayer stuttering with url from a specific site
因此,我的应用程序播放来自 Internet 的广播电台。除了播放来自 101.ru 的广播电台外,一切都很好。音乐是断断续续的,我不能说断断续续之间有任何相等的时间间隔。
我正在使用 ExoPlayer 库 v2.8.0.
我尝试过什么来修复它:
- 将 ExoPlayer 更新到 2.10.3 - 没有结果
- 试验 Exoplayer 的缓冲区大小 - 没有结果或最差(几个小时的试验)
我的ExoPlayer初始化代码:
IcyHttpDataSourceFactory factory = new IcyHttpDataSourceFactory.Builder(Util.getUserAgent(context, userAgent))
.setIcyHeadersListener(this)
.setIcyMetadataChangeListener(this).build();
dataSourceFactory = new DefaultDataSourceFactory(context, null, factory);
RenderersFactory renderersFactory = new DefaultRenderersFactory(context);
TrackSelection.Factory trackSelectionFactory = new AdaptiveTrackSelection.Factory(new DefaultBandwidthMeter());
DefaultTrackSelector trackSelector = new DefaultTrackSelector(trackSelectionFactory);
LoadControl loadControl = new DefaultLoadControl();
player = ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector, loadControl);
player.addListener(this);
我的 ExoPlayer 代码来自 url:
player.prepare(generateMediaSource(Uri.parse(url)));
private MediaSource generateMediaSource(Uri uri) {
return new ExtractorMediaSource.Factory(dataSourceFactory)
.setExtractorsFactory(new DefaultExtractorsFactory())
.createMediaSource(uri);
}
因此,101.ru 有大约 80 个广播电台,其中大约 95% 的电台口吃。但是,其他 100-200 个广播电台的质量非常好。
我能做些什么来修复它?谢谢
问题已解决。问题出在 IcyHttpDataSourceFactory 中。我在 exoplayer wrote github 问题中得到了答案:
版本应为 2.10.3,您不应使用任何其他版本 IcyHttpDataSourceFactory
,因为他们在最新版本中添加了 ICY 支持。
所以,卡顿问题解决了,现在声音清晰了。
因此,我的应用程序播放来自 Internet 的广播电台。除了播放来自 101.ru 的广播电台外,一切都很好。音乐是断断续续的,我不能说断断续续之间有任何相等的时间间隔。 我正在使用 ExoPlayer 库 v2.8.0.
我尝试过什么来修复它:
- 将 ExoPlayer 更新到 2.10.3 - 没有结果
- 试验 Exoplayer 的缓冲区大小 - 没有结果或最差(几个小时的试验)
我的ExoPlayer初始化代码:
IcyHttpDataSourceFactory factory = new IcyHttpDataSourceFactory.Builder(Util.getUserAgent(context, userAgent))
.setIcyHeadersListener(this)
.setIcyMetadataChangeListener(this).build();
dataSourceFactory = new DefaultDataSourceFactory(context, null, factory);
RenderersFactory renderersFactory = new DefaultRenderersFactory(context);
TrackSelection.Factory trackSelectionFactory = new AdaptiveTrackSelection.Factory(new DefaultBandwidthMeter());
DefaultTrackSelector trackSelector = new DefaultTrackSelector(trackSelectionFactory);
LoadControl loadControl = new DefaultLoadControl();
player = ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector, loadControl);
player.addListener(this);
我的 ExoPlayer 代码来自 url:
player.prepare(generateMediaSource(Uri.parse(url)));
private MediaSource generateMediaSource(Uri uri) {
return new ExtractorMediaSource.Factory(dataSourceFactory)
.setExtractorsFactory(new DefaultExtractorsFactory())
.createMediaSource(uri);
}
因此,101.ru 有大约 80 个广播电台,其中大约 95% 的电台口吃。但是,其他 100-200 个广播电台的质量非常好。 我能做些什么来修复它?谢谢
问题已解决。问题出在 IcyHttpDataSourceFactory 中。我在 exoplayer wrote github 问题中得到了答案:
版本应为 2.10.3,您不应使用任何其他版本 IcyHttpDataSourceFactory
,因为他们在最新版本中添加了 ICY 支持。
所以,卡顿问题解决了,现在声音清晰了。