Нет стерео звука в динамиках и в одном наушнике с помощью 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 );