0

次のコード スニペットがあります。ゲームを終了するとゲーム内のすべてのアクティビティが停止するはずなのに、終了ボタンをクリックしてもメディア プレーヤーが停止しない理由がわかりません。stop()、release()、reset() を試し、null に設定しました。どこが間違っているのか教えてください。

public void onClick(View v){
        // The background music of the game 
        MediaPlayer back_music = MediaPlayer.create(getBaseContext(), R.raw.sher_khan);
        switch (v.getId()){
        case R.id.new_game:
            openNewGameDialog();
            break;
        case R.id.about_game :
            Intent i = new Intent(this, About.class);
            startActivity(i);
            break;
        case R.id.exit_game :
            if(back_music.isPlaying()){
                back_music.release();
                back_music.reset();
                back_music = null ;
                //onDestroy();
            }
            finish();
            break;
        case R.id.sound :
            // Looping the music
            //back_music.setLooping(true);
            // Identifying and kind of looping through the sound_selector items
            if(v.isSelected()){

                v.setSelected(false);
                play = false;
                //Music start for the media player
                back_music.start();

            }
            else if (!v.isSelected()){
                //speaker.setSelected(false);
                back_music.stop();
                back_music.release();
                v.setSelected(true);
                play = true;
                back_music.release();
            }

        }
4

1 に答える 1

0

以下をお試しください:

作成時にメディア プレーヤーを作成し、ACTIVITY のメンバーとして宣言します。

MediaPlayer back_music;
public class MainACtivity(){
....
....
onCreate(){
   back_music= MediaPlayer.create(getBaseContext(), R.raw.sher_khan);
.....
}

次に、「MediaPlayer back_music = MediaPlayer.create(getBaseContext(), R.raw.sher_khan);」行を削除します。

もう一度試してみてください:)

お役に立てば幸いです。

于 2013-08-18T14:55:08.010 に答える