Java 错误:在状态0下调用mediaplayer启动错误(-38,0)

Java 错误:在状态0下调用mediaplayer启动错误(-38,0),java,android,media-player,Java,Android,Media Player,我是android新手,我已经编写了连接mediaplayer播放歌曲的代码 我已经创建了一个文件夹路径=//localhost/Android/sd/vande.mp3文件 public class MainActivity extends Activity { Button start,pause,stop; boolean flag; @Override protected void onCreate(Bundle savedInstanceState) { super.onCre

我是android新手,我已经编写了连接mediaplayer播放歌曲的代码

我已经创建了一个文件夹路径=//localhost/Android/sd/vande.mp3文件

public class MainActivity extends Activity {
Button start,pause,stop;
boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    start=(Button)findViewById(R.id.button1);
    pause=(Button)findViewById(R.id.button2);
    stop=(Button)findViewById(R.id.button3);

    final MediaPlayer mp=new MediaPlayer();
    try{
    mp.setDataSource(Environment.getExternalStorageDirectory().getPath()+"/Android/music/vande.mp3");

    mp.prepare();

    }catch(Exception e){e.printStackTrace();}

    mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
    { 
        public void onPrepared(MediaPlayer player) 
        {  
            //mp.start();
            flag = true; 
        } 

    });
    if(flag ==true)
    {
        start.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mp.start();
            }
        });
    }
    else
    {
        stop.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mp.stop();
            }
        });
    }

    pause.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            mp.pause();
        }
    });
}}
但当我检查logcat时,文件没有播放,出现了一个错误,启动状态为0 error-38,0

有人能帮忙解决这个问题吗


提前感谢

您需要等到媒体播放器准备好后再调用start

mp.setOnPreparedListener(
new MediaPlayer.OnPreparedListener() {
 public void onPrepared(MediaPlayer player) 
 { 
    mp.start();  
 }
 });
如果你想启动播放器,点击按钮。你可以有一面旗帜。布尔标志=假

然后

然后在onClick中

if(flag ==true)
{
  mp.start();
}else
{
     // media player not prepared
}

您需要等待媒体播放器准备好后再调用start

mp.setOnPreparedListener(
new MediaPlayer.OnPreparedListener() {
 public void onPrepared(MediaPlayer player) 
 { 
    mp.start();  
 }
 });
如果你想启动播放器,点击按钮。你可以有一面旗帜。布尔标志=假

然后

然后在onClick中

if(flag ==true)
{
  mp.start();
}else
{
     // media player not prepared
}

在媒体播放器准备就绪之前,我尝试了onPreparedListener,而不是OnClickListener调用start。setOnPreparedListener新建媒体播放器。onPreparedListener{public void onPreparedMediaPlayer{mp.start;}};让我们发布代码。检查它是否有效,您可以接受在媒体播放器准备就绪之前在PreparedListener而不是OnClickListener上尝试的samei调用start。setOnPreparedListener New MediaPlayer.onPreparedListener{public void onPreparedMediaPlayer{mp.start;};让我们发布代码。检查它是否有效,您可以接受samei已在@Raghunandan编辑此代码,但仍需要很长时间,为什么我不这么做know@SandeepV因为媒体播放器还没有准备好。你需要等它消失happen@SandeepV单击时检查内部的标志。看不清time@SandeepV你没有从互联网上传音频,所以没有互联网许可是没有意义的。让我们看看我在Raghunandan编辑了这个代码,但是我为什么不编辑呢know@SandeepV因为媒体播放器还没有准备好。你需要等它消失happen@SandeepV单击时检查内部的标志。看不清time@SandeepV您没有从互联网上传输音频,因此没有互联网许可证是没有意义的让我们