1

オーディオの例として、簡単なActivityクラスを作成しました。しかし、問題は、アプリを終了してもオーディオファイルが実行され続けることです。電話の真ん中で「OK/DONE」ボタンを押してACTIVITYを停止したいのですが、アクティビティクラスでどのメソッドをオーバーライドする必要がありますか?

public class Audio extends Activity {

    private MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_audio, menu);
    return true;
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    int resId;
    switch (keyCode) {
    case KeyEvent.KEYCODE_DPAD_UP:
    resId = R.raw.up;
    break;
    case KeyEvent.KEYCODE_DPAD_DOWN:
    resId = R.raw.down;
    break;

    default:
        return super.onKeyDown(keyCode, event);
    }

    // Release any resources from previous MediaPlayer
    if (mp != null) {
        mp.release();
        }

    // Create a new MediaPlayer to play this sound
    mp = MediaPlayer.create(this, resId);
    mp.start();

    // Indicate this key was handled
    return true;


}

}/// end class
4

2 に答える 2

0

onPause() メソッドで必要なものを処理できます。または、 onDestroy() メソッドを実装することもできます。ホームボタンを押すか、アプリケーションを閉じると、onPause()、onDestroy() の順に進みます。

@Override
protected void onPause() {
    // stop player here
    super.onPause();
}
于 2012-09-10T06:48:02.950 に答える