#windows #winapi #directx
#Windows #winapi #directx
Вопрос:
Microsoft может сказать следующее по поводу устаревших аудиоприложений:
В Windows Vista Sndvol немедленно отражает изменения громкости, которые приложение выполняет посредством вызовов метода IDirectSoundBuffer::setVolume или функции waveOutSetVolume.
Я обнаружил, что это, безусловно, верно для функции waveoutset volume, но не для IDirectSoundBuffer8::setVolume() . Похоже, что буфер прямого звука имеет свою собственную ступень усиления, которая умножается на громкость приложения, установленную в микшере SndVol.
Кто-нибудь может подтвердить, что это так, или я где-то что-то делаю не так? Может быть, отсутствует флаг или аналогичный?
Ответ №1:
Имейте в виду, что IDirectSoundBuffer::setVolume — это затухание в 100 дБ, а waveOutSetVolume — линейный масштаб. В зависимости от значений, которые вы вводите в оба, вы можете не получить ожидаемый результат.