扬声器和使用波形的一个耳机中没有立体声音频

时间:2013-06-24 16:46:06

标签: waveout

我使用MSoft WaveOut api编写了一个应用程序,除了我的扬声器不播放立体声单声道外,它工作正常。当我将耳机插入两个插孔中的一个时,我得到相同的单声道行为,但另一个插孔以立体声播放文件。如果我使用的是使用DirectX api的东西,那么所有的都是立体声播放。 我的设备是戴尔Studio XP。 有人可以提出理由吗?

2 个答案:

答案 0 :(得分:0)

你应该将Channels参数从1改为2

format.wFormatTag = 1 ' PCM
format.nChannels = 1 '1=mono   ,  2=Steero <<<<<<
format.nSamplesPerSec = 8000 ' 12000
format.wBitsPerSample = 16

答案 1 :(得分:0)

问题在于音量。我用以下代码设置音量:

unsigned long x = 0xFFFF;
MMRESULT result = waveOutSetVolume( _audio_device, x );

事实上,我需要这样做:

unsigned short left = unsigned(0xFFFF * v);
unsigned short right = unsigned(0xFFFF * v);

unsigned long x = left + (right << 16);
MMRESULT result = waveOutSetVolume( _audio_device, x );