当应用程序失去焦点时,桌面上的Windows 10 UWP访问麦克风丢失

时间:2017-05-27 21:20:25

标签: uwp microphone

我在C#中用Visual Studio 2015编写了一个Windows 10 UWP,它使用语音识别来执行某些命令。 所有工作都很好,直到PC从显示器睡眠状态恢复或应用程序失去焦点/最小化。之后应用程序不会响应麦克风,除非我再次重新启动应用程序。 该应用程序仅设计用于我的几台Windows 10台式机,因此不关心移动或其他平台功能。 有没有办法确保应用程序保持与麦克风的“连接”,或者我是否已经使用UWP进入“死胡同”,我是否应该在WPF中构建它? 我曾经认为UWP是MS推销的未来标准,新应用程序只能以这种格式编写,而不能用Forms,WCF或WPF编写。我错了,还有WPF的未来(如果“是”,我可以将我的UWP应用程序转换为WPF,希望我仍然可以完全访问麦克风之类的东西,就像我在较旧的vb.net表单版本中所做的那样我的应用程序?)。

因此,为了澄清,我需要了解以下内容:

  1. 即使应用最小化/屏幕超时,Windows 10桌面上的Windows 10 UWP应用仍然可以连接麦克风吗?
  2. 如果答案是否定的话,那么WPF是否是最佳途径,是否支持该格式/平台可能会继续像UWP一样被推动?
  3. 如果我必须沿着WPF的路线前进,我的UWP应用程序可以转换为WPF吗?
  4. 如果A Win Forms应用程序是确保持续访问麦克风的唯一方法,那么对win表单的支持将持续多长时间,因为不建议以此格式编写新应用程序?
  5. 我非常感谢任何帮助,因为我花了很多时间将旧的vb.net win form应用程序重新编写为C#UWP应用程序。 谢谢, 里奇

1 个答案:

答案 0 :(得分:0)

当UWP应用程序最小化时,它会暂停。无法连接麦克风。有关详情,请查看Windows 10 universal Windows platform (UWP) app lifecycle

由于您只需要该应用程序在Windows 10台式机上运行,​​因此最佳选择之一是使用WPF,WPF也可以在Windows 10上运行并继续受到支持。例如,他们为WPF添加了每个监视器的DPI感知支持(请参阅https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI)。并且在WPF中可以使用许多UWP API,您应该能够手动将UWP应用程序转换为WPF。有关更多信息,请参阅this answer