在 .NET MAUI Blazor 组件应用程序中授予 MAC Catalyst 中的麦克风和摄像头权限

问题描述 投票:0回答:2

我有一个使用 .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 中授予麦克风和摄像头的权限。

macos maui sip maui-blazor
2个回答
1
投票

是的,我们应该先添加

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:

顺便说一句,应用程序安装后第一次会出现提示。操作系统会记住用户的响应,因此后续使用捕获系统不会导致提示再次出现。

希望它有效。


0
投票

有没有办法在maccatalyst的webview中提示相机权限? 我遇到的问题是 webview 在 macCatalyst 中不请求相机许可,但在 Windows 中工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.