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

问题描述 投票:1回答:2

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

    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)

这段代码有什么问题?

java android android-mediaplayer
2个回答
4
投票

删除此行

mp.start();

从你的start1方法,因为你已经开始使用onPrepared方法。


0
投票

国家4意味着Mediaplayer正在准备状态

我们称之为其他行为

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

或任何其他。

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

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

只需删除

mp.start() 

mp.prepareAsync();

而你会很高兴!

© www.soinside.com 2019 - 2024. All rights reserved.