来自特定站点的 ExoPlayer 卡顿 url

ExoPlayer stuttering with url from a specific site

因此,我的应用程序播放来自 Internet 的广播电台。除了播放来自 101.ru 的广播电台外,一切都很好。音乐是断断续续的,我不能说断断续续之间有任何相等的时间间隔。 我正在使用 ExoPlayer 库 v2.8.0.

我尝试过什么来修复它:

我的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 支持。

所以,卡顿问题解决了,现在声音清晰了。