是否有任何明确的消息来解释Android混音如何真正起作用?当STREAM_NOTIFICATION与STREAM_MUSIC上的音乐混音时,我在SoundPool上遇到了一个非常意想不到的行为。
播放音乐时,即使音量低,SoundPool播放的音量也是没有播放音乐时音量的50%。
这大致是我正在使用的代码:
SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0);
其中几个:
sound_id = soundPool.load(context,
context.getResources().getIdentifier("sound1",
"raw",
"com.package.name"),
1);
后来这个:
final AudioManager manager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
final int volume = manager.getStreamVolume(AudioManager.STREAM_MUSIC);
manager.setStreamVolume(AudioManager.STREAM_MUSIC, volume/2, 0);
soundPool.play(sound_id, 1f, 1f, 1, 0, 1);
new Handler().postDelayed(new Runnable() {
public void run() {
manager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
}
}, 1000);
如果当前没有播放音乐,则声音全音量,清晰可辨。如果正在播放音乐,音乐会正确衰减,但声音仍然只能以50%的音量播放。
什么是混音算法?有没有人知道这个或解决方法?
答案 0 :(得分:0)
您是否尝试过在NOTIFICATION_STREAM上设置音量?我在使用MediaPlayer(没有soundpool)时手动设置通知蒸汽量,同时避免因问题解决了音乐流,我遇到了类似的问题。