1

私はアンドロイドが初めてで、別の(単純な?)問題があります。Media Player の停止方法がわかりません。これは私の簡単なコードです:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view);
        MediaPlayer mp;
        mp = MediaPlayer.create(this, R.raw.sauronsound);
        mp.setLooping(false);
        mp.start();
    @Override
    protected void onDestroy()
{

    // Stop play
        super.onDestroy();
        mp.stop();
    }
        }

戻るボタンを押した後、アプリは最初のアクティビティに移動しますが、サウンドはオンになっています。アプリを離れると、アプリもオンになります。音を消すにはどうしたらいいですか?

いつものように私の下手な英語ですみません。

みんなのおかげで問題が解決しました。作業コード:

public class SauronEye extends Activity {
    private MediaPlayer mp;
    @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view);
        mp = MediaPlayer.create(this, R.raw.sound);
        mp.setLooping(false);
        mp.start();


     // Get instance of Vibrator from current Context
        Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        v.vibrate(10000);
        }
@Override
    protected void onStop()
{
    // Stop play
    super.onStop();
    mp.stop();
}
    }

それは正しいですか(動作しますか)?助けてくれてありがとう。

4

4 に答える 4

2

mpで使用している参照は、で使用している参照とonDestroyは異なりますonCreate。行をクラスMediaPlayer mp;の外に移動します。onCreate

于 2011-08-22T16:23:10.490 に答える
0

これをチェックしてくださいhttp://developer.android.com/reference/android/media/MediaPlayer.html 要件に基づいて停止または一時停止を呼び出すことができます。戻るボタンを選択すると、一時停止が呼び出され、そのメソッドで呼び出すことができますmp.stop()、onDestroy は、アクティビティが完全に破棄された場合にのみ呼び出されます

于 2011-08-22T16:22:55.037 に答える
0

onDestroy は、アクティビティがシステムによって強制終了されたときにのみ呼び出されます。onDestroy に配置するのではなく、onPause() に配置する必要があります。これは、アクティビティがバックグラウンドに移動されたがメモリに残っているときに呼び出されるものです。(これは、戻るボタンが押された、またはアプリを離れたときに起こることです)

@Override
protected void onPause() {
    super.onPause();
    mp.stop();
}
于 2011-08-22T16:33:13.227 に答える
0

オーバーライド実装のソース コードを非常に簡単に呼び出して、それぞれをコードに追加することができます。あなたがする必要があるのは、それらが必要な挿入ポイントを右クリックし、[ソース] -> [メソッドのオーバーライド/実装] をクリックすることだけです。ダイアログ ボックスが表示され、必要なメソッドをクリックして、ondestroy、onpause、onstop を使用してみてください。あなたのコードのために、そしてそれがそれぞれを実装した後、それぞれに以下を追加するだけです.

    protected void onDestroy{
      super.onDestroy();
      mp.release();
   }

    protected void onStop{
      super.onStop();
      mp.stop();
   }

    protected void onPause{
      super.onPause();
      mp.pause();
   }

また、サウンドコードについてもう少し知りたい場合は、このリンク stealthcoptersリンクを試すか、このビデオシリーズ cornboyzAndroidを試すことができます

于 2011-10-17T17:35:48.780 に答える