[英]Error: mediaplayer start called in state 0 error(-38,0)
我是android的新手,我已經編寫了將Mediaplayer鏈接以播放歌曲的代碼
我創建了文件夾path =“ // 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錯誤中被調用(-38,0)
任何人都可以幫助解決此代碼
提前致謝
您需要等到媒體播放器准備好后才能調用start
mp.setOnPreparedListener(
new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer player)
{
mp.start();
}
});
如果要在按鈕上啟動播放器,請單擊。 您可以有一個標志。 boolean flag=false;
然后
public void onPrepared(MediaPlayer player)
{
flag= true;
}
然后在onClick
if(flag ==true)
{
mp.start();
}else
{
// media player not prepared
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.