3

ラジオ ステーションをストリーミングするメディア プレーヤーには、再生と一時停止の 2 つのボタンがあります。2つの機能を持つボタンを1つだけにしたい。最初のクリックは再生し、2 回目のクリックは一時停止します。もう一度クリックすると、再生したくなります。私は助けが必要です。これが私のコードです。

 play = (Button) findViewById(R.id.play);
 pause = (Button) findViewById(R.id.pause);


 play.setOnClickListener(new View.OnClickListener() {
 public void onClick(View view) {
 play();
}
});
play.performClick();

pause.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
pause();
}
});


}

private void play() {
Uri myUri = Uri.parse("Shoutcast URL");
try {
if (mp == null) {
this.mp = new MediaPlayer();
} else {
mp.stop();
mp.reset();
}
mp.setDataSource(this, myUri); // Go to Initialized state
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setOnPreparedListener(this);
mp.setOnBufferingUpdateListener(this);

mp.setOnErrorListener(this);
mp.prepareAsync();

Log.d(TAG, "LoadClip Done");
} catch (Throwable t) {
Log.d(TAG, t.toString());
}
}

@Override
public void onPrepared(MediaPlayer mp) {
Log.d(TAG, "Stream is prepared");
mp.start();
}

private void pause() {
mp.pause();
}



@Override
public void onDestroy() {
super.onDestroy();
stop();

}

public void onCompletion(MediaPlayer mp) {
stop();
}
4

5 に答える 5

2

たとえば、これは android:onClick 属性を持つ ToggleButton です。

<ToggleButton 
    android:id="@+id/togglebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOn="Vibrate on"
    android:textOff="Vibrate off"
    android:onClick="onToggleClicked"/>

このレイアウトをホストするアクティビティ内で、次のメソッドがクリック イベントを処理します。

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {
        // Enable vibrate
    } else {
        // Disable vibrate
    }
}
于 2013-08-08T07:30:47.623 に答える
0
Boolean b = false;
Button play = (Button) findViewById(R.id.play);
play..setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
    if(b == false)
  {
         //write play code here
       b= true;
  }
  else
  {
     // enter pause code here
   }

   }
}
于 2013-08-08T07:33:29.500 に答える
0

トグルボタンを使用できます:

toggleButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    if (toggleButton.isChecked()) {
       play();
    } else {
        pause();
    }
}
});

トグル ボタンから緑色のバーを削除することもできます。

トグルボタンのMkyongの例

Android 開発者向けチュートリアル

于 2013-08-08T07:34:18.317 に答える