使用 ExoPlayer 缓冲音频直播
Posted
技术标签:
【中文标题】使用 ExoPlayer 缓冲音频直播【英文标题】:Buffer audio livestream with ExoPlayer 【发布时间】:2018-04-02 11:14:11 【问题描述】:我在 android 上使用 ExoPlayer 播放广播音频直播。 使用标准实现,当网络连接丢失时,直播会立即停止播放。
ExoPlayer 状态: 已开始 -> 连接丢失 -> 立即缓冲 -> 2-3 秒后。空闲
是否可以缓冲广播直播,所以如果没有互联网连接,流会继续播放几秒钟,直到网络连接恢复。 音乐应用 Tunein 具有此功能。 ExoPlayer 可以做到这一点还是怎么可能?
【问题讨论】:
【参考方案1】:是的,现在可以使用具有此功能的 ExoPlayer 2.7.0。参考本期:Seeking in radio streams
在这篇文章的最后几个 cmets 中提到了它。希望对您有所帮助。
【讨论】:
【参考方案2】:对于 2.x ,可以使用 LoadControl
修改缓冲区大小:
DefaultLoadControl loadControl = new DefaultLoadControl(allocator, 30000,
45000, 1500, DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS);
Official docs
更新: 但是 ExoPlayer 有一个问题: Audio stream moved to buffering state immediately on disconnection of internet 正如开发人员所说,计划在年底(或此后不久)修复
【讨论】:
不幸的是,这不起作用。连接丢失后,播放器状态立即为 BUFFERING 并且在 IDLE 之后 它仍然没有修复......希望他们会尽快修复它。 TuneIn 应用程序具有此功能并且可以正常工作...以上是关于使用 ExoPlayer 缓冲音频直播的主要内容,如果未能解决你的问题,请参考以下文章
Android ExoPlayer 无法播放 HLS(HTTP 直播)