ボタンをタップするとMP3を再生するボタンをAndroidアプリに追加しようとしています。私はそれを動作させましたが、mediaPlayerオブジェクトを解放する方法がありません-したがって、アクティビティを終了した後も再生を続けます。react()メソッド(ボタンが押されたときに呼び出されるもの)の外部でMediaPlayerオブジェクトを初期化すると、アクティビティが開かれたときにアプリが強制的に閉じられます。しかし、react()メソッド内でMediaPlayerを初期化すると、onQuit()メソッドでmplayer.releaseを使用できなくなります。ここに何が見えないのですか?
public void react(View view) {
MediaPlayer mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);
mediaPlayer.start();
}
protected void onStop(){
mediaPlayer.release();
mediaPlayer = null;
}
明らかな理由で機能せず、
MediaPlayer mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);
public void react(View view) {
mediaPlayer.start();
}
protected void onStop(){
mediaPlayer.release();
mediaPlayer = null;
}
強制的に閉じます。
更新: これがJavaクラス全体です。
public class ToBeOrNot extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_be_or_not);
}
MediaPlayer mediaPlayer;
public void react(View view) {
mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);
mediaPlayer.start();
}
protected void onStop(){
mediaPlayer.release();
mediaPlayer = null;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.activity_to_be_or_not, menu);
// Locate MenuItem with ShareActionProvider
return true;
}
}
私はそれが何をするかは比較的自明だと思います。呼び出されると、テキストとボタンが表示され、タップすると録音の再生が開始されます。誰かが戻るボタンを押すと、前のアクティビティに戻って録音を停止する必要があります。私を助けてくれてありがとう!