Android混音如何真正起作用?

时间:2010-02-11 09:26:59

标签: android audio

是否有任何明确的消息来解释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%的音量播放。

什么是混音算法?有没有人知道这个或解决方法?

1 个答案:

答案 0 :(得分:0)

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