安卓的MediaPlayer prepareAsync() 超时问题?

3

我正在使用MediaPlayerprepareAsync()函数。

我的代码如下:

try {
  mediaPlayer.setDataSource(stream_url);
  mediaPlayer.prepareAsync();
} catch (Exception e) {
  e.printStackTrace();
}

mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }
});     

问题在于有时候stream_url正在播放音乐,但有时候没有播放。如果stream_url没有播放音乐,我该如何通知用户?是否可以设置某种超时或捕获错误呢?目前没有任何错误被引发,如果没有流,则只是调用异步函数然后什么也不做。

为什么不使用mp.isPlaying()? - marienke
我看它似乎一直在尝试重新连接。 - Mingjiang Shi
1个回答

2

如果您查看文档,可以找到一些可用于设置监听器的子项,还有一个允许您检查异步操作错误的设置器。

MediaPlayer.OnErrorListener 

异步操作期间发生错误时调用的回调接口定义(其他错误会在方法调用时抛出异常)。


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