现在我可以在Android上播放音乐了。但我想在2到8秒之间随机播放这个声音。我怎么能随机播放它,例如第一次,它播放2秒,下一次播放7秒等等?有人能帮助我吗?
答案 0 :(得分:3)
答案 1 :(得分: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);