【发布时间】:2013-02-11 13:41:09
【问题描述】:
我想流式传输一个音频 mp3 文件,然后通过 android 媒体播放器播放它另外我还想缓存这个文件,这样媒体播放器就不必最近播放的曲目的流。
我曾尝试使用prepareAsync 方法,但它无法让我访问缓冲区内容,因此我决定自己流式传输音频文件,然后将其传递给媒体播放器进行播放。我通过遵循这篇文章 here 实现了这一点,但这种方法存在问题,即在将文件传输到媒体播放器时,它进入错误模式,导致我的播放器行为不一致。
当媒体播放器进入其错误模式时,它不会自动退出,因此我不得不创建一个新的媒体播放器,然后重新为其提供下载的文件,这种解决方法会导致用户在播放过程中遇到不希望的暂停正在播放的歌曲。
那么,是否有人改进了上面link 中给出的代码版本? 或他们是否知道解决此问题的更好方法或实际上是否有一个库用于在 android 中流式传输音频文件?
谢谢
【问题讨论】:
-
从
MediaPlayer的角度来看,抽象为DataSource的输入源应该能够在拉模式下工作。根据您上面的评论,MediaPlayer将从您的流媒体源中提取数据。您能否确认您的源支持拉取操作模式?你能分享一下你面临的错误吗? -
@Ganesh 我不熟悉拉模型,你能解释一下吗,或者你能提到任何实现或解释媒体播放器拉模型的链接
标签: android caching audio-streaming android-mediaplayer