我在两个不同的应用程序中有两种类型的MediaPlayer播放。一个是等待播放下一个单词/声音效果的单个变量。这似乎工作得很好。另一个是一组最多4个同时播放的MediaPlayer变量。这在2.3.3版本中可以工作,在4.0.3版本的虚拟设备上似乎也能工作,但在我的TF101上,它在这两个应用程序中都崩溃了。
在一个错误的触摸,playse('oops')将被调用。
public void playse(String ss){
MediaPlayer tempse;
if(tse1 == null){tempse = tse1;}
else{if(tse2 == null){tempse = tse2;}
else{if(tse3 == null){tempse = tse3;}
else{if(tse4== null){tempse = tse4;}}}}
if(ss == "oops"){ tempse = MediaPlayer.create(mContext, R.raw.seoops); tempse.start();}
}在应用程序的主循环中,4个变量是这样处理的:
if(tse1 != null){ if(tse1.isPlaying()== false){tse1.release(); tse1= null;} }
if(tse2 != null){ if(tse2.isPlaying()== false){tse2.release(); tse2= null;} }
if(tse3 != null){ if(tse3.isPlaying()== false){tse3.release(); tse3= null;} }
if(tse4 != null){ if(tse4.isPlaying()== false){tse4.release(); tse4= null;} }发布于 2012-03-19 07:57:14
你可以将其缩写
MediaPlayer tempse;
if(tse1 == null){tempse = tse1;}
else{if(tse2 == null){tempse = tse2;}
else{if(tse3 == null){tempse = tse3;}
else{if(tse4== null){tempse = tse4;}}}}至
MediaPlayer tempse = null;也许您应该将==更改为!=
这是我唯一能看到的东西,但我不知道你得到了什么错误。
https://stackoverflow.com/questions/9763266
复制相似问题