作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个程序可以生成 midi 和 wav 音频。我需要能够分别控制 MIDI 和音频的音量和平衡,理论上,我需要做的似乎就是打电话
unsigned short left = (unsigned short)(wavvol*wavbal/100.0);
unsigned short right = (unsigned short)(wavvol*(100-wavbal)/100.0);
MMRESULT err = waveOutSetVolume(hWaveOut, left | (right<<16)); // for audio
unsigned short left = (unsigned short)(midivol*midibal/100.0);
unsigned short right = (unsigned short)(midivol*(100-midibal)/100.0);
MMRESULT err = midiOutSetVolume(s_hmidiout, left | (right<<16)); // for midi
最佳答案
我不认为他们可以分开。您可以移至较新的 IAudioClient接口(interface)和使用两个WASAPI单独控制音量的 session - 一个用于 wav,一个用于 midi。这在 Vista 下的任何东西上都不起作用。
或者,您可以在代码中跟踪音量级别,只要您不同时播放 wav 和 midi,请在播放前重置它们。
关于windows audio waveOut SetVolume 交叉连接 midi Out SetVolume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266050/
我是一名优秀的程序员,十分优秀!