我有類似下面我的佈局xml文件顯示:Android的MediaPlayer的檢查情況
Song1 playbutton
Song2 playbutton
Song3 playbutton
當鬆1 PLAYBUTTON以往用戶點擊我需要打鬆1,中間如果Song2 PLAYBUTTON用戶點擊有我需要檢查Song2和Song3 mediapalyer實例
我得到IllegalStateException和有些時候NullPointerException 如何檢查,任何人都可以幫助嗎?
這裏我的代碼:
MediaPlayer mp1=new MediaPlayer();
MediaPlayer mp2=new MediaPlayer();
playbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(mp2!=null){
if(mp2.isPlaying()){
mp2.stop();
mp2.release();
mp2=null;
play20.setVisibility(View.VISIBLE);
}
}
playbtn.setVisibility(View.INVISIBLE);
pausebtn.setVisibility(View.VISIBLE);
try {
Log.d("Start Media Player", "Start Media Player");
AssetFileDescriptor descriptor = MediaActivity.this
.getApplicationContext().getAssets()
.openFd("volumc.mp3");
mp1.setDataSource(descriptor.getFileDescriptor(),
descriptor.getStartOffset(), descriptor.getLength());
// descriptor.close();
mp1.prepare();
mp1.setLooping(true);
mp1.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
pausebtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.d("pausebtn", "pausebtn");
playbtn.setVisibility(View.VISIBLE);
pausebtn.setVisibility(View.INVISIBLE);
mp1.stop();
mp1.release();
mp1=null;
}
});
// 20
play20.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(mp1!=null){
if(mp1.isPlaying()){
mp1.stop();
mp1.release();
mp1=null;
playbtn.setVisibility(View.VISIBLE);
}
}
play20.setVisibility(View.INVISIBLE);
pause20.setVisibility(View.VISIBLE);
try {
Log.d("Start Media Player", "Start Media Player");
AssetFileDescriptor descriptor = MediaActivity.this
.getApplicationContext().getAssets()
.openFd("volumc.mp3");
mp2.setDataSource(descriptor.getFileDescriptor(),
descriptor.getStartOffset(), descriptor.getLength());
// descriptor.close();
mp2.prepare();
mp2.setLooping(true);
mp2.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
pause20.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.d("pausebtn", "pausebtn");
play20.setVisibility(View.VISIBLE);
pause20.setVisibility(View.INVISIBLE);
mp2.stop();
mp2.release();
}
});
請看一看的答案,標記爲接受,如果它幫助。 – johntheripp3r