现在我可以在android中播放音乐了。但是我想在 2 到 8 秒之间的随机时间内播放这个声音。我怎样才能随机播放它,例如第一次播放 2 秒,下一次播放 7 秒等等?有谁能够帮我?
问问题
320 次
2 回答
2
android中的声音是这样播放的:
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
int mSoundID = mSoundPool.load(this, R.raw.sound1, 1);
float lActualVolume = (float) audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
float lMaxVolume = (float) audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float lVolume = lActualVolume / lMaxVolume;
// Is the sound loaded already?
if (mSoundIsLoaded) {
mSoundPool.play(mSoundID, lVolume, lVolume, 1, 0, 1f);
我认为你已经得到了很多帮助来计算出随机数部分。您必须将声音文件放在 assets/raw 目录中。
编辑:我忘了提到 mSoundIsLoaded 参数的来源。我在加载声音时设置它。我在我的 onCreate 方法中执行此操作。加载声音时,我设置了名为 mSoundIsLoaded 的布尔字段。我这样做是为了在播放声音时防止 NullPointerExceptions 声音的加载看起来像这样:
mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
mSoundIsLoaded = true;
}
});
mSoundID = mSoundPool.load(this, R.raw.sound1, 1);
于 2012-05-02T12:24:13.913 回答