有一个问题,经常发生。
我正在使用 soundpool 播放 soundfx。一个 soundfx "silence.mp3" 一直循环播放,所以我可以随时改变音量。如果我更改音量,则会显示“媒体音量”。它似乎是应用程序的音量。
离开应用程序(返回或主页按钮)后,我无法更改“铃声音量”。
启动 Activity 会播放声音
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
if (StbApp.mSoundPool != null){
Log.d(TAG, "playSounds");
Log.d(TAG, "menu: " + StbApp.menu);
StbApp.mSoundPool.play(
StbApp.menu,
StbApp.mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
StbApp.mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
0,
0,
1
);
Log.d(TAG, "menu: " + StbApp.silence);
StbApp.mSoundPool.play(
StbApp.silence,
StbApp.mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
StbApp.mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
0,
-1,
1
);
}
我尝试暂停我在应用程序中使用的所有声音,以确保由于某种原因没有声音播放。(即使它是启动器活动)
@Override
protected void onPause() {
Log.d(TAG, "onPause");
StbApp.mSoundPool.pause(StbApp.gameover);
StbApp.mSoundPool.pause(StbApp.execution);
StbApp.mSoundPool.pause(StbApp.menu);
StbApp.mSoundPool.pause(StbApp.number);
StbApp.mSoundPool.pause(StbApp.penalty);
StbApp.mSoundPool.pause(StbApp.players);
StbApp.mSoundPool.pause(StbApp.quest);
StbApp.mSoundPool.pause(StbApp.round);
StbApp.mSoundPool.pause(StbApp.spinning);
StbApp.mSoundPool.pause(StbApp.silence);
super.onPause();
}
我不能使用 autoPause(),因为只有 API 级别 8 和更高级别支持该方法。我尝试在设置中强制停止。但这也行不通。我必须重新启动手机才能更改铃声音量。(索尼爱立信 X10)
在 Android 2.1 中离开应用程序后,有没有办法能够更改铃声音量?
编辑:我在更多设备上对其进行了测试。摩托罗拉 FlipOut 和 SE X10 mini 也出现此问题。它适用于 Galaxy S、HTC Legends、SE X8 和 Galaxy S II。