如何在安卓中使用异步任务进行音频流传输

3
我们能否在Android中使用异步任务来流式传输音频文件?如果您有此方面的经验,请给出一个示例。
2个回答

10

我自己也曾经为此苦苦挣扎,因为每个人都告诉我“只要使用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,如果你计划从所有活动中停止音乐。 在互联网上可以找到一些关于这方面的教程。


0

@orioplons...我使用普通的播放、暂停和停止按钮来实现它...这很好用,但现在我正在尝试使用异步任务,我需要音乐在后台播放,并且可以随时停止... - user1051599
可能您需要覆盖您的活动方法(例如onPause,onResume,onStop),以防止音乐停止。 - oriolpons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接