在Android MediaPlayer中启动调用状态4错误?

时间:2013-07-13 01:15:48

标签: java android android-mediaplayer

我正在开始播放服务中的在线音频流。这是开始播放的方法:

    void start1(String a){
        try{
        mp.setDataSource(a);//mp is a global MediaPlayer variable
        mp.setOnPreparedListener(this);
        mp.prepareAsync();
        mp.start();
        }catch(Exception e){
            noerror=false;
                }
  }

onPrepared()功能:

    @Override
  public void onPrepared(MediaPlayer mp1){
        mp.start();
    }

此代码给出了错误

Start called in state 4: error(-38,0)

此代码有什么问题?

2 个答案:

答案 0 :(得分:4)

删除此行

mp.start();

来自start1方法,因为您已经开始使用onPrepared方法了。

答案 1 :(得分:0)

状态4表示Mediaplayer正在准备状态

我们称其他行为如

Mediaplayer.start() 
Mediaplayer.stop() 
Mediaplayer.pause() 

或任何其他。

根据您的代码,它是Mediaplayer.start();

调用Onprepared()方法后,您可以进行进一步处理。

只需删除

mp.start() 

之后

mp.prepareAsync();

你会好起来的!