4

onCreate() メソッドで次のことを行っています。

mSound = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
AudioManager mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
soundID = mSound.load(this, R.raw.sample, 1);
streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
setVolumeControlStream(AudioManager.STREAM_MUSIC);

次に、ボタンを押してサウンドファイルを再生したいので、 onClick() メソッドで次のようにします。

mSound.play(soundID, streamVolume, streamVolume, 1, 0, 1f);

それはうまく機能します...しかし、たった5秒間だけ、それはただ途切れます...何かアイデアはありますか? ありがとう。それが役立つかどうか、DROID 3でテストしています。

4

2 に答える 2

2

SoundPoolは、通知ファイルなどの短いオーディオファイル用に作成されています...長いオーディオファイルを再生するには、-...を使用します。

       private MediaPlayer mp_file;  

          ...........
       mp_file = MediaPlayer.create(getApplicationContext(), R.raw.big); 
       mp_file.start();
于 2012-10-18T05:15:16.257 に答える
0

R.raw.sample が実際に 5 秒より長いことを確認しましたか?

もしそうなら、いくらですか?SoundPool は短いサンプルでの使用を想定しているためです。SoundPool が機能しない場合は、代わりにMediaPlayerを試してください。使い方が簡単で、長いサンプルで使用できるように設計されています。

于 2012-10-18T04:16:07.307 に答える