我有两个声音,一个用于每个团队获胜,我加载到onCreate()中的SoundPool。这是我在onCreate()
中调用的方法private void loadSounds() {
wins = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
oneWinsID = wins.load(this, R.raw.teamonewins, 1);
twoWinsID = wins.load(this, R.raw.teamtwowins, 2);
}
现在我开始另一个活动,当该活动结束时,我恢复了第一个活动,我使用标志为意图加载声音。
private void end(){
Intent intent = new Intent(this, TitleScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
当此活动恢复时,我会尝试播放声音,但声音无法播放。
private void playTeamWins(int soundID){
if(SettingsActivity.areSoundsOn()){
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume / maxVolume;
wins.play(soundID, volume, volume, 1, 0, 1.0f);
}
}
应该加载声音因为我从未销毁过第一个活动,所以我认为这不是原因。此外,我创建了一个按钮,可以在点击时播放声音,看看它是否与我的声音文件有关,但效果很好。