Нет стерео звука в динамиках и в одном наушнике с помощью Waveout

Я написал приложение с использованием MSoft WaveOut api, и оно отлично работает, за исключением того, что мои динамики не воспроизводят только стерео. Когда я подключаю наушники к одному из двух разъемов в одном, я получаю такое же монофоническое поведение, но другой разъем воспроизводит файл в стереофоническом режиме. Если я использую что-то, что использует DirectX API, все играет в стерео. Мое оборудование - Dell Studio XP. Может кто-то предложить причину для этого?

2 ответа

Вы должны изменить параметр Channels от 1 до 2

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

Проблема была с громкостью. Я устанавливал громкость с помощью кода:

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 );
Другие вопросы по тегам