首页 > 解决方案 > 如何停止需要麦克风权限的 UWP 相机

问题描述

所以我MediaCapture在我的 Surface Pro 设备上的 UWP 应用程序中初始化一个元素,如下所示:

            // Create MediaCapture and its settings
            mediaCapture = new MediaCapture();
            var mediaInitSettings = new MediaCaptureInitializationSettings
            {
                VideoDeviceId = cameraDevice.Id,
                AudioDeviceId = string.Empty,
                //StreamingCaptureMode = StreamingCaptureMode.Video,
                //PhotoCaptureSource = PhotoCaptureSource.Photo
            };

            // Initialize MediaCapture
            try
            {
                await mediaCapture.InitializeAsync(mediaInitSettings);
                ....
            }

InitializeAsync应用程序要求摄像头和麦克风功能的线路上。

现在我不需要麦克风功能,因为我只拍摄照片,而且我的许多用户拒绝访问麦克风说“为什么你需要麦克风访问权限才能拍照”

我使用内置的“相机”应用程序进行了测试,并拒绝在 Windows 上使用麦克风,这非常有效。

我查看了文档,它说:

InitializeAsync 将启动同意提示以获取用户对应用程序访问麦克风或摄像头的权限

那么是否可以停止应用程序请求麦克风权限?

标签: c#uwppermissionscameramediacapture

解决方案


好的,我通过更改添加这一行的方法很容易地解决StreamingCaptureMode了这个问题:MediaCaptureInitializationSettings

StreamingCaptureMode = StreamingCaptureMode.Video

所以它变成了:

var mediaInitSettings = new MediaCaptureInitializationSettings
{
     VideoDeviceId = cameraDevice.Id,
     AudioDeviceId = string.Empty,
     StreamingCaptureMode = StreamingCaptureMode.Video,
};

推荐阅读