0

activityオーディオをバックグラウンドミュージックとして持つものを作りました。スキップボタンを追加して別activityのボタンに移動すると、最初のアクティビティのバックグラウンドミュージックが継続的に再生されていました。これが私のコードです。コードに何を追加すればよいかを確認して投稿してください。前もって感謝します!

public class pgone extends Activity {
    protected boolean _active = true;
    protected int _splashTime = 7000;
     public void onAttachedToWindow() {
            super.onAttachedToWindow();
            Window window = getWindow();
            window.setFormat(PixelFormat.RGBA_8888);


        }

     MediaPlayer audio;
     MediaPlayer SLONE;

    private long splashDelay = 6000; 


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pgone);

        TimerTask task = new TimerTask()
        {

            public void run() {

                Intent mainIntent = new Intent().setClass(pgone.this, pgtwo.class);
                startActivity(mainIntent);
                finish();

            }

        };

        final Timer timer = new Timer();
        timer.schedule(task, splashDelay);


        audio = MediaPlayer.create(this,R.raw.storyaud);
        audio.start();

        SLONE = MediaPlayer.create(this,R.raw.sl1);
        SLONE.start();


        final MediaPlayer mp = MediaPlayer.create(this, R.raw.buttonbeep);
        final Vibrator mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);


Button skipButton = (Button)findViewById(R.id.skip);
skipButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Intent skipIntent = new Intent(pgone.this,choose.class);
        startActivity(skipIntent);
         mp.start();
         mVibrator.vibrate(500);
        finish();
        timer.cancel();
        timer.purge();


    }
});

    }

    protected void exitByBackKey() {

        AlertDialog alertbox = new AlertDialog.Builder(this)
        .setMessage("Do you want to exit the game?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {


            public void onClick(DialogInterface arg0, int arg1) {

                finish();
            }
        })
        .setNegativeButton("No", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface arg0, int arg1) {
            }
        })
          .show();
    }

}
4

3 に答える 3

1

次のアクティビティに進む前に、オーディオを停止する必要があります。ここでmp.start()をmp.stop()に置き換えてみてください。

Button skipButton = (Button)findViewById(R.id.skip);
skipButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Intent skipIntent = new Intent(pgone.this,choose.class);
        startActivity(skipIntent);
         mp.stop();
         mVibrator.vibrate(500);
        finish();
        timer.cancel();
        timer.purge();


    }
});
于 2012-09-03T04:12:29.973 に答える
0

mp.stop() mp.reset()スキップボタンのクリックイベントの代わりに書いてくださいmp.start()。詳細については、以下のリンクを参照してください。

サウンドの再生のメディアプレーヤーの例

シンプルなAndroidMp3メディアプレーヤー

于 2012-09-03T05:09:06.267 に答える
0

最も簡単で効率的な方法-

@Override
    protected void onPause() {
        super.onPause();
        yoursMusicPlayerObject.release();

    }

次のアクティビティにジャンプするときに、アクティビティライフサイクルのonPauseフェーズを活用します。ここでMediaPlayerオブジェクトである使用中のI/Oリソースを解放するだけです。

于 2014-07-08T18:28:07.730 に答える