Android Exoplayer缓存m3u8音频以提供离线支持

时间:2018-12-03 09:54:52

标签: android exoplayer

我正在创建一个音乐应用程序。 我已经使用了Exoplayer V2.8.0,到目前为止,我已经实现了播放,暂停下一个,上一个播放,随机播放,使用应用内控件以及通知功能重复播放所有歌曲。

但这一切仅在联机模式下有效。

现在,我想向此应用添加离线支持,并允许用户离线下载歌曲并在离线时播放。

我们得到的音频文件是* .m3u8文件。

但是我的问题是用户不应在我的应用程序之外访问那些下载的文件。我尝试使用一种方法,但是它提供了从m3u8文件的不同部分下载并合并的mp3文件。

有人可以指导我或给我有关如何仅下载片段的示例或教程,并且在播放时可以使用该片段并离线播放音频吗?

2 个答案:

答案 0 :(得分:0)

有一个建议给你,

如果要使用.m3u8或任何其他文件创建脱机播放器,则在下载后将文件以某些不同的格式保存到package文件夹中。然后在使用该格式时,将特定格式转换为mp3或其他格式,这将有助于离线音乐播放。

答案 1 :(得分:0)

您可以使用本地http代理服务器(NanoHttpd)。启动服务器并将您的ExoPlayer指向127.0.0.1,以便您可以监视请求。第一次看到请求时,缓存m3u8播放列表以及下载的文件。下次您的代理服务器检测到相同的请求时,只需播放缓存中的文件即可。