我们能否在Android中使用异步任务来流式传输音频文件?如果您有此方面的经验,请给出一个示例。
我自己也曾经为此苦苦挣扎,因为每个人都告诉我“只要使用prepareAsync()
就行了”。
然而,在尝试start()
之前,您仍需要等待足够多的缓冲,否���您将会遇到错误且无法播放任何内容。
首先,让你音乐流类实现OnPreparedListener
接口,这将用于在开始播放之前检查是否已经缓冲足够。
接下来,请使用此代码片段开始缓冲并设置监听器:
mediaPlayer.setDataSource(URL here);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(this);
您现在已经设置了监听器,以检查是否已经缓冲足够的内容。只需再进行一步即可。
public void onPrepared(MediaPlayer mediaplayer) {
// We now have buffered enough to be able to play
mediaPlayer.start();
}
现在这首歌曲将能够开始播放而不会出现错误或其他问题。
祝你好运!
如果你想播放音乐并随时停止它,那么你需要使用一个 Service
,如果你计划从所有活动中停止音乐。 在互联网上可以找到一些关于这方面的教程。
你可以使用 mediaPlayer 对象。
mediaPlayer.setDataSource("Your datasource");
mediaPlayer.prepareAsync();
方法prepareAsync:异步地准备播放器进行播放。
更多信息请参见:http://developer.android.com/reference/android/media/MediaPlayer.html
希望这可以帮助到您...