none
问个小事儿:C#能不能检索多音源输入? RRS feed

  • 问题

  • 我现在有个麦克,一个贝斯,想把贝斯的音源放出来,但是麦克不动。当有其他程序用到麦克时(比如开YY或者其他语聊工具)就可以用麦克但是不用贝斯。
    请问这个功能要怎么做?
    另外我想放大音源可以么?
    2010年2月26日 8:57

答案

  • 这些功能是通过系统 (也就是 Windows) 控制的,还需要音频驱动程序的支持。

    您的问题似乎与混音器有关,您可以通过音频控制 API 启用/禁用相关音频设备,也可以通过 WMI 去做,我觉得应该不会很难。我没有可供参考的事例,尽在这里提供给您一些思路。

    1、最简单的方法就是动态启用/禁用您的 Mic 和 Bass,但问题在于您怎么检测到其他应用程序在请求使用 Mic 或者 Bass。

    2、通过控制 Windows Audio Remix (Windows 音频混音器),这需要声音驱动程序的支持,动态的对混音器信号源做处理也是一种途径。

    3、利用 Windows 7 中的 Audio Communication 控制功能让系统去 Handle。启用 Communication 选项卡的相关功能后,Mic 的音量会根据当前音频信号和程序请求自动关闭/增强。

    抱歉的是,我没有代码可以共享。但希望这对您有帮助。


    Mark Zhou
    • 已标记为答案 阿幻 2010年3月20日 4:39
    2010年3月19日 8:23

全部回复

  • 有办法么……
    2010年3月19日 0:35
  • 还有活人么……
    2010年3月19日 6:55
  • 这些功能是通过系统 (也就是 Windows) 控制的,还需要音频驱动程序的支持。

    您的问题似乎与混音器有关,您可以通过音频控制 API 启用/禁用相关音频设备,也可以通过 WMI 去做,我觉得应该不会很难。我没有可供参考的事例,尽在这里提供给您一些思路。

    1、最简单的方法就是动态启用/禁用您的 Mic 和 Bass,但问题在于您怎么检测到其他应用程序在请求使用 Mic 或者 Bass。

    2、通过控制 Windows Audio Remix (Windows 音频混音器),这需要声音驱动程序的支持,动态的对混音器信号源做处理也是一种途径。

    3、利用 Windows 7 中的 Audio Communication 控制功能让系统去 Handle。启用 Communication 选项卡的相关功能后,Mic 的音量会根据当前音频信号和程序请求自动关闭/增强。

    抱歉的是,我没有代码可以共享。但希望这对您有帮助。


    Mark Zhou
    • 已标记为答案 阿幻 2010年3月20日 4:39
    2010年3月19日 8:23