我有一个使用 .NET MAUI Blazor 组件开发的应用程序。
它具有 SIP/VOIP 功能。
在此应用程序中,有视频通话的功能。因此,当我在 Windows 上运行此应用程序时,它工作正常,并且会弹出麦克风和相机许可的弹出窗口。
但是当我尝试在 MAC Catalyst 上运行相同的应用程序时,麦克风和摄像头权限的弹出窗口没有出现。
我已经尝试过以下内容来在 MAC Catalyst 中显示上面的弹出窗口。但我仍然看不到弹出窗口。
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(function(stream) {
})
.catch(function(error) {
});
} else {
}
所以,我的问题是...我怎样才能在 MAC Catalyst 中显示这个弹出窗口。如果没有任何方法可以显示这一点,那么我如何以编程方式在 MAC Catalyst 中授予麦克风和摄像头的权限。
是的,我们应该先添加
NSCameraUsageDescription
和NSMicrophoneUsageDescription
。
另外,请添加 AVCaptureDevice.RequestAccessForMediaType 以显示提示。考虑以下代码:
//if want to show microphone prompt, you could use AVAuthorizationMediaType.Audio
AVCaptureDevice.RequestAccessForMediaType (AVAuthorizationMediaType.Video, (bool isPermissionGranted) =>
{
if(isPermissionGranted)
{
}
else
{
}
});
然后就会出现提示。有关更多信息,您可以参考 requestAccessForMediaType:completionHandler:
顺便说一句,应用程序安装后第一次会出现提示。操作系统会记住用户的响应,因此后续使用捕获系统不会导致提示再次出现。
有没有办法在maccatalyst的webview中提示相机权限? 我遇到的问题是 webview 在 macCatalyst 中不请求相机许可,但在 Windows 中工作正常。