Search code examples
c#uwppermissionscameramediacapture

How do I stop UWP Camera requiring permission to the Microphone


So I am initialising a MediaCapture element in my UWP application on my Surface Pro device like so:

            // 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);
                ....
            }

at the line InitializeAsync the application asks for both camera and microphone capabilities.

Now I have no need for the Microphone capability as I am only capturing photos and many of my users deny access to the Microphone saying "Why do you need microphone access to take a photo"

I tested using the built in "Camera" app and denying permission to the Microphone on windows and this works perfectly.

I looked at the documentation and it says:

InitializeAsync will launch a consent prompt to get the user's permission for the app to access the microphone or camera

So is it possible to stop the app asking for Microphone permissions?


Solution

  • Ok I managed to solve it pretty easily by changing the StreamingCaptureMode on the MediaCaptureInitializationSettings adding this line:

    StreamingCaptureMode = StreamingCaptureMode.Video
    

    so it became:

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