開始/一時停止と停止ボタンの 2 つのボタンを備えたメディア プレーヤーを作成しています。初めて再生を開始すると、正常に動作します。しかし、一度停止した後に開始しようとすると、開始/一時停止ボタンを2回クリックする必要があります。
この振る舞いがわかりません。
以下は私のonclickコードです:
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>
あなたの提案を教えてください。
ありがとう
男