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 回答