【问题标题】:C# Dynamically set sound output of application [duplicate]C#动态设置应用程序的声音输出[重复]
【发布时间】:2018-04-20 20:59:07
【问题描述】:

不久前,我正在开发一个应用程序,该应用程序根据程序所在的屏幕来控制程序的声音输出。例如,我的电视上有一个浏览器,通过它我想将程序的声音输出设置到电视的扬声器。我已经完成了检测部分(找到程序在哪个屏幕上),我已经准备好实施你在这里给我的任何解决方案。我的程序通过始终关注关注的应用程序来工作,所以如果它改变屏幕,它应该改变声音输出

正如我在上面告诉你的,我已经完成了屏幕检测,但是当涉及到仅为那个专注的应用程序更改声音输出时,我到目前为止还没有运气。我该如何做到这一点?是否可以?我已经搜索过这个主题并找到了应该像 NAudio 这样的库,但它们似乎都不适合我,这就是我停止开发这个程序的原因,直到现在:)

【问题讨论】:

  • @Michael Gunter 是的,我已经看过这个帖子,但是那里的答案都没有对我有用,另一方面,是否可以制作虚拟声卡并将所有程序挂接到它,通过该声卡将程序中继到声音输出,我没有对此进行研究,因为它只是一个想法 rn
  • 您运行的是 Windows 10 吗?如果是这样,您会遇到与我发现的相同的事情——该线程(和引用的线程)中的一些答案似乎有效(没有错误),但实际上根本没有做任何事情。我不知道虚拟声卡是否可以工作,但如果可以,那将是相当多的工作。你必须为它构建一个完整的驱动程序。

标签: c#


【解决方案1】:

不幸的是,你搞砸了。 Windows 有意不提供 API 来更改默认音频输出设备。很久以前就确定这样的 API 将允许开发人员编写对用户具有高度侵入性和烦人的程序。

多年来,人们发现了一些 Windows 的未记录功能,这些功能可以实现这一点。我让它在我的旧 Windows 7 机器上运行得非常一致。但是,我编写的用于执行此操作的程序不再适用于 Windows 10,而且我从未找到任何其他机制可以做到这一点。

这是另一个有一些很好参考的问题:Programmatically switch audio devices on Windows 7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多