停止调用状态1错误(-38,0)

时间:2017-09-05 15:51:00

标签: android android-mediaplayer

我有以下代码:

    mp = new MediaPlayer();
    try {
        mp.setDataSource(URL);
    } catch (Exception e) {
        e.printStackTrace();
    }
    mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
            mediaPlayer.start();
        }
    });
    mp.prepareAsync();

我正在做我应该做的确切事情,以便正确处理媒体播放器的状态但我仍然有错误:

  

停止调用状态1错误(-38,0)

有人可以帮忙吗?非常感谢!

更新: 我的代码运行正常,我在网上找到一些链接,但它无法在我的服务器上播放我的mp3文件,例如链接:http://111.blabla/wms/wp-content/upload/audio/mysong.mp3 使用VLC可以播放我的文件

1 个答案:

答案 0 :(得分:0)

错误38表示您要求MediaPlayer在处于错误状态时执行某些操作

看一下android文档中的mediaplayer状态图

MediaPlayer state diagram

根据图表,你必须调用setDataSource()和prepare() 在调用start()之前。

之前可能发生了一些错误。您的logcat应该指向正确的方向。

由于您正在接收准备异步回调,我猜数据源中存在错误。

你的setDataSource看起来有点奇怪,因为我的期望就像是

setDataSource(currentConext, url)

而不仅仅是

setDataSource(url)