您可以在Android上使用MediaPlayer或SoundPool播放聲音。 使用MediaPlayer時,我們的兩款Android設備播放的聲音會大得多。 在第三個設備上,音量聽起來相同。Android:爲什麼MediaPlayer比SoundPool播放的聲音更響亮?
你知道爲什麼嗎? 我可以讓SoundPool像MediaPlayer那樣響亮地播放聲音嗎?
設備的問題:
平板LG-V400(Android 4.4的奇巧)
電話(安卓4.2.2)
代碼:播放MP3聲音的Soundpool
private void playSoundPool() {
int MAX_STREAMS = 2;
SoundPool soundPool = new SoundPool(MAX_STREAMS, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int soundId, int status) {
int loop = 0;
int priority = 0;
float rate = 1.f;
soundPool.play(soundId, 1, 1, priority, loop, rate);
}
});
soundPool.load(this, R.raw.test, 1);
}
代碼:播放MP3聲音的MediaPlayer
private void playMediaPlayer() {
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.test);
mediaPlayer.setVolume(1, 1);
mediaPlayer.start();
}
將'1.0f'作爲'soundPool.play'的音量時會發生什麼?我想你會想要使用相同的音量水平,如果你想要相同的音量。 – ianhanniballake 2014-10-04 06:00:06
這是一樣的。我已將0.99f放入,因爲有人在2010年建議將SoundPool音量保持在[0,0.99f]範圍內。我用「1」更新了代碼,以保持簡單。 – Pavel 2014-10-04 06:05:22
也許它與MediaPlayer.setAudioStreamType有關? – pskink 2014-10-04 06:17:46