Android 安卓混音系统到底是如何工作的?

Android 安卓混音系统到底是如何工作的?,android,audio,Android,Audio,有没有确切的资料可以解释Android混音系统是如何工作的?当SoundPool on STREAM_通知与音乐on STREAM_音乐混合使用时,我收到了一个非常意外的行为 当播放音乐时,即使音量很低,SoundPool播放的声音也比不播放音乐时的音量低50% 这大致就是我正在使用的代码: SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0); 其中几个: sound_id = soundPoo

有没有确切的资料可以解释Android混音系统是如何工作的?当SoundPool on STREAM_通知与音乐on STREAM_音乐混合使用时,我收到了一个非常意外的行为

当播放音乐时,即使音量很低,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%的音量播放


混合算法是什么?有人知道这方面的情况或解决方法吗?

您是否尝试过在通知流上设置音量?我在使用MediaPlayer(没有声音池)并手动设置通知流音量时遇到了类似的问题,同时避开了问题解决的音乐流。

您是否尝试过在通知流上设置音量?我在使用MediaPlayer(没有声音池)和手动设置通知蒸汽音量时遇到了类似的问题,同时避开了问题所解决的音乐流。

更奇怪的是,这种行为只发生在非麦克风耳机上,而不是通过扬声器。您是否设法解决了这个问题?我也被同样奇怪的行为击中了…甚至更奇怪-这种行为只发生在非麦克风耳机上,而不是通过扬声器。你找到答案了吗?我被同样奇怪的行为击中了。。。