代码之家  ›  专栏  ›  技术社区  ›  DeusAduro

DSSCLèu独占不提供独占音频输出。直接声音

  •  0
  • DeusAduro  · 技术社区  · 14 年前

    非常简单的问题。在 MSDN documentation 对于directsoundapi,他们声明当我的应用程序处于焦点时,它将是唯一可听到的程序。这正是我想要发生的,但是当设置这个标志并通过我的应用程序播放声音时,我仍然可以听到我的计算机上的背景音乐。

    所以问题是,为什么?是不是因为播放背景音乐的应用程序使用了不同的低级API,从而使用了不同的混合缓冲区?或者是有一些其他的小技巧,我需要调整,以成为唯一的听觉应用程序。

    我问了一个类似的/相关的问题 here ,没有回应。但是,如果您不知道特定DirectSound问题的答案,但是您知道如何成为唯一一个使用不同API的音频应用程序,请再次告诉我!

    谢谢,如果有区别的话,我使用的是32位的WindowsXPProfessional。

    1 回复  |  直到 7 年前
        1
  •  2
  •   selbie    14 年前

    很久以前,Windows开发人员意识到允许一个应用程序完全控制音频系统(从而使其他应用程序静音)是个坏主意。随后,他们否决了许多这样的“独占”和前台/后台模式标志。我相信这种行为改变可以追溯到directx7.1(WinME),然后在dx8上正式出现。这是10年前的事了。

    想象一下,当您将前台应用程序切换到以某种独占模式运行音频的应用程序时,您的视频会议应用程序将变为静音。在应用程序之间切换时不能可靠地听到任何人的声音不是一种很好的体验。

    事实上,在DX8之前,许多流行的多人游戏语音通信应用程序会不断地嗅探前台窗口句柄,并将其用于调用SetCooperativeLevel,这样它们就不会被静音。

    我想知道“你真正想做的是什么”会很有趣,这让你假设你需要对音频输出进行完全控制。

    在Vista和更高版本上,有用于低级音频的WASAPI。我相信有一个“独占”模式的概念,但我不知道是否胜过其他使用声卡的应用程序。基督教青年会。

    推荐文章