Существует проблема, которая возникала очень часто.
Я использую soundpool для воспроизведения soundfx. Один soundfx «silence.mp3» постоянно играет в цикле, так что я могу изменить громкость в любое время. Если я меняю громкость, отображается «громкость медиа». Кажется, это объем для приложения.
После выхода из приложения (кнопка «Назад» или «Домой») я не могу изменить «громкость звонка».
Звук будет воспроизводиться, если начать задание
@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 и выше поддерживает метод. Я пытаюсь принудительно остановить в настройках. Но это тоже не сработает. Я должен перезагрузить телефон, чтобы изменить громкость звонка. (Sony Ericsson X10)
Есть ли способ изменить громкость звонка после выхода из приложения в Android 2.1?
EDIT:
Я проверил это на некоторых других устройствах. Проблема возникла также на Motorola FlipOut и SE X10 mini. Работает на Galaxy S, HTC Legends, SE X8 и Galaxy S II.