我正在创建从URL加载顺序mp3文件的应用程序 . 当我尝试在第一个mp3文件完成时初始化下一个mp3文件,但问题是,当第一个文件完成时,播放器需要时间来准备或初始化下一个mp3文件,是的我知道这是媒体播放器的一部分,准备工作需要时间(对于 prepare()
它可能会很长而且比较排序时间) .
但是,我需要的是,当第一个mp3文件完成播放时,下一个mp3文件(来自url)不应该花时间准备,因为它应该没有中断播放 . 我想知道, Is there way to attach next mp3 files for buffering while playing current mp3? ,所以我们可以不间断地播放它 .
我也试着在播放第一个时在缓存中下载下一个mp3文件 . 但问题是,当第一个完成时,第二个mp3文件可能没有完全下载(这对于2g连接来说太差了) . 并且播放器将初始化下载的mp3文件的一部分 . 并且播放器将仅播放已初始化的下载文件的那部分(如果我错误,请更正).it导致文件损坏 . 它根本不是好表现 .
我尝试缓存下一个mp3文件,而当前的mp3播放率约为75%,但在这种情况下,mp3文件没有完全缓存,也导致文件损坏 .
所以请给我一个建议,如何在没有inrerupt的情况下播放连续的mp3文件?并且要做到这一点 . 提前致谢
2 回答
Just save all Urls in an ArrayList
并注意current index of songUrl
. 并将SekkCompleteListener添加到它 . 当一首歌完成更改索引并播放它 . 完整的详细教程是AndroidHiveWhere playSong is
MediaPlayer.OnSeekCompleteListener
使用专为您的案例设计的setNextMediaPlayer(mp) API . 您必须在播放期间准备另一个MediaPlayer实例并将其设置为下一个 . 然后你就没有时间在曲目之间浪费了 . 基本上你必须使用2个实例并来回交换它们 .