5

私はアプリを作っています。アクティビティが開かれたときにサウンドを鳴らしたいのですが、サウンドファイルはR.raw.sound_file.

4

4 に答える 4

12

android.media.MediaPlayerクラスはこれをしませんか?

参照: http://developer.android.com/reference/android/media/MediaPlayer.html

例: http://developer.android.com/guide/topics/media/index.html

例のステップ 2 は次のように述べています。

MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
mp.start();

あなたの場合、onStart()Activity クラス内で使用します。

public class MyActivity extends Activity {
   ... 
   protected void onStart() {
      super.onStart();
      MediaPlayer mp = MediaPlayer.create(this, R.raw.sound_file_1);
      mp.start();
   }
   ...
}
于 2010-03-16T23:29:18.317 に答える
4

私が作成した Android アプリに MediaPlayer オブジェクトを使用した経験があり、次のことを発見しました。

  • Wav ファイルは、ビットレートが 32kbps の場合、MediaPlayer で問題が発生しますが、より高いビット レートの wav ファイルは問題なく再生されるようです。大きな wav ファイルであっても、ビットレートが高ければ問題なく再生されます。

  • 可能であれば、オーディオに mp3 ファイルを使用してください。MediaPlayer オブジェクトを使用した mp3 オーディオ ファイルではまったく問題が発生しなかったため、これが最善の方法です。Google を使用すると、リングなしで利用できるさまざまな種類の mp3 サウンドがたくさんあります。犬の鳴き声、猫の鳴き声、または探しているあらゆる種類の音まで。

于 2012-12-29T19:17:11.070 に答える
0

私も同じ問題を抱えていました。これは、次のようにアプリケーションコンテキストを使用することでうまくいきました:

public class MyActivity extends Activity {
   ... 
   protected void onStart() {
      super.onStart();
      Context appContext = getApplicationContext();
      MediaPlayer mp = MediaPlayer.create(appContext , R.raw.sound_file_1);
      mp.start();
   }
   ...
}

また、完了したら mp.release() を呼び出すことを忘れないでください

別の推奨オプションは、SoundPool クラスを使用することです。

于 2011-05-14T17:50:06.750 に答える
0

私のコードを試してみてください。完全に機能します。また、サウンド ファイル .wav en res/raw が必要です。

public class PianoActivity extends Activity {

private MediaPlayer mediaPlayer = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_piano);
    setupUI();
}

@Override
protected void onPause() {
    super.onPause();
    if (mediaPlayer != null) {
        mediaPlayer.release();
        mediaPlayer = null;
    }
}

private void setupUI() {
    findViewById(R.id.doo).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            managerOfSound();
        }
    });
}

private void managerOfSound() {
    mediaPlayer = MediaPlayer.create(this, R.raw.doo);
    if (!mediaPlayer.isPlaying()) {
        mediaPlayer.start();
    } else {
        mediaPlayer.stop();
    }
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.reset();
            mp.release();
        }
    });
}

}

于 2015-10-25T06:54:54.660 に答える