vscode 语音:检测麦克风使用权限缺失 ```markdown Voice: 检测麦克风使用权限缺失 ```

fnatzsnv  于 4个月前  发布在  Vscode
关注(0)|答案(6)|浏览(49)

测试 https://github.com/microsoft/vscode-copilot/issues/4203
复现:

  1. 在macOS上
  2. 通过cmd+i打开聊天,macOS麦克风访问弹出窗口显示(这出乎意料,因为我只是按下了cmd+i,而不是按住)
  3. 点击拒绝访问,🐛蓝色脉冲动画显示且不停歇

点击麦克风继续切换状态,但实际上没有进行任何录音。理想情况下,我们会看到访问受到限制,并引导用户前往macOS麦克风权限设置。

dnph8jn4

dnph8jn41#

相关: Azure-Samples/cognitive-services-speech-sdk#2238
事实证明,我们必须自己实现这个功能,库里没有提供这个信息,也没有计划在未来添加这个功能。

iugsix8n

iugsix8n2#

我非常希望我们能通过网络API检测到这个问题,我已经尝试了以下方法(需要[1]权限):

navigator.permissions.query(
	{ name: 'microphone' } as any
).then(function(permissionStatus){
	console.log(permissionStatus.state); // granted, denied, prompt
})

但是这总是返回denied。然后我希望这个可以:

navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => {
	/* permissions */
}).catch((error) => { /* no permissions */ });

但似乎即使没有授权,我也总是得到一个流。如果有人有更多的想法,欢迎寻求帮助。
[1] 707bffb#diff-ce90ef6ffd304cc541efa8135dc4878c7b61889d2b2d5ef69e196af6cea7647b

cotxawn7

cotxawn73#

@bpasero 我猜你需要一些Mac原生代码来检查应用程序的操作系统级权限,query API总是拒绝似乎在这里是正确的,因为应用程序无法完全使用麦克风。

j7dteeu8

j7dteeu84#

我认为navigator.permissions API在授权时应该返回granted,但我也看到并非所有权限都可以这样查询,所以microphone可能不是其中之一。
我希望避免为此编写原生代码,并理想地寻找一个适用于所有平台的网络解决方案。我相信其他应用程序也可能遇到这个问题吧?

0lvr5msh

0lvr5msh5#

Deepak或Matt对使用permissions的了解可能更多,我对其的使用经验相当有限,主要仅限于剪贴板访问。

相关问题