0

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

4

2 回答 2

0

您需要将 Channels 参数从 1 更改为 2

format.wFormatTag = 1 ' PCM
format.nChannels = 1 '1=mono   ,  2=Steero <<<<<<
format.nSamplesPerSec = 8000 ' 12000
format.wBitsPerSample = 16
于 2014-05-05T16:26:20.433 回答
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 );
于 2016-09-05T23:52:39.100 回答