我正在创建一个带有两个按钮开始/暂停和停止按钮的媒体播放器,当我第一次开始播放时它工作正常。但是,当我尝试在一次停止后开始时,我需要单击启动/启动按钮两次。
我不明白这种行为。
以下是我的点击代码:
public void click(View view){
int id = view.getId();
try {
mPlayer.setDataSource(PATH);
mPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
switch(id){
case R.id.btnPlay:
synchronized(this){
if(!isStarted){
btnPlay.setBackgroundResource(R.drawable.pause);
isStarted=true;
mPlayer.start();
System.out.println("Play");
} else{
System.out.println("Pause");
isStarted = false;
btnPlay.setBackgroundResource(R.drawable.play);
mPlayer.pause();
}
}
return;
case R.id.btnStop :
synchronized(this){
if(mPlayer!=null){
System.out.println("Stop");
mPlayer.stop();
isStarted = false;
btnPlay.setBackgroundResource(R.drawable.play);
}
}
这是我的布局 xml 文件:
<View
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="1" />
<Button
android:id="@+id/btnStop"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/stop"
android:onClick="click" />
<Button
android:id="@+id/btnPlay"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/play"
android:onClick="click" />
<View
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="1" />
<View
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="1" />
</LinearLayout>
请让我知道你的建议。
谢谢
阿曼