【问题标题】:ExoPlayer stuttering with url from a specific siteExoPlayer 使用来自特定站点的 url 口吃
【发布时间】:2019-07-15 12:17:56
【问题描述】:

所以,我的应用播放来自互联网的广播电台。除了播放 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 个广播电台的质量非常好。 我能做些什么来修复它?谢谢

【问题讨论】:

    标签: android audio exoplayer exoplayer2.x


    【解决方案1】:

    问题已解决。问题出在 IcyHttpDataSourceFactory。我在 exoplayer github 问题中有wrote,我已经得到了答案:

    版本应为 2.10.3,您不应使用任何其他 IcyHttpDataSourceFactory,因为它们在最新版本中添加了 ICY 支持。

    所以,口吃问题解决了,现在声音清晰了。

    【讨论】:

      猜你喜欢
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多