DSSCL_EXCLUSIVE не дает эксклюзивного звукового вывода.DirectSound - PullRequest
0 голосов
/ 07 июля 2010

Очень простой вопрос. В документации MSDN для DirectSound API говорится, что когда мое приложение находится в фокусе, оно будет единственной слышимой программой. Это именно то, что я хочу, но при установке этого флага и воспроизведении звука через мое приложение я все еще слышу фоновую музыку на своем компьютере.

Итак, вопрос в том, почему? Это потому, что приложение воспроизводит фоновую музыку, используя другой низкоуровневый API и, следовательно, разные микшерные буферы? Или есть еще один маленький трюк, который мне нужно настроить, чтобы стать единственным слышимым приложением.

Я задал похожий / связанный вопрос здесь , без ответа. Но еще раз, если вы не знаете ответа на конкретный вопрос DirectSound, но знаете, как стать единственным слышимым приложением с другим API, дайте мне знать!

Спасибо, я на Windows XP 32Bit Professional, если это имеет значение.

1 Ответ

2 голосов
/ 09 июля 2010

Давным-давно разработчики Windows поняли, что позволить одному приложению иметь полный контроль над аудиосистемой (тем самым отключая другие приложения) было плохой идеей.А затем они устарели многие из этих флагов «эксклюзивный» и основной / фоновый режим.Я полагаю, что это изменение поведения полностью восходит к DirectX 7.1 (WinME), а затем формально повсеместно в DX 8. Это было 10 лет назад.

Представьте, что приложение для видеоконференций отключается, когда вы переключаете приложение переднего плана наприложение, которое запускало аудио в каком-то эксклюзивном режиме.Неспособность надежно услышать кого-либо при переключении между приложениями - это не очень хороший опыт.

На самом деле, до DX 8 многие популярные приложения для голосовой связи для многопользовательских игр постоянно обнюхивалиобрабатывать окно переднего плана и использовать его для вызова SetCooperativeLevel, чтобы они не отключались.

Думаю, было бы интересно узнать, "что вы действительно хотите делать?"это заставляет вас думать, что вам нужен полный контроль над аудиовыходом.

В Vista и выше есть API WASAPI для низкоуровневого звука.Я считаю, что существует концепция «эксклюзивного» режима, но я не знаю, превосходит ли это другие приложения, использующие звуковую карту.YMMV.

...