private async Task<bool> CameraPermissionCheck()
{
MediaCapture _mediaCapture = new MediaCapture();
try
{
await _mediaCapture.InitializeAsync();
return true;
}
catch (UnauthorizedAccessException ex)
{
return false;
}
}
private async void DoCameraStuff()
{
bool cameraAllowed = await CameraPermissionCheck();
if (cameraAllowed)
{
//DO Stuff....
}
else
{
ShowMessage("Can't Do Stuff because camera permission is denied. To grant them....");
}
}
ただしMediaCapture.InitializeAsync()
、Webcam
とMicrophone
権限の両方が必要です。私がしていることはオーディオをキャプチャする必要はなく、私が使用しているイメージングライブラリ(ZXing)はWebcam
;だけを必要とします。したがって、このソリューションは、マニフェストがユーザーに[はい]をクリックして、アプリケーションが必要とせず、決して使用しないアクセス許可を要求する必要があるという点で理想的とは言えません。
私がしていることはオーディオをキャプチャする必要はなく、私が使用しているイメージングライブラリ(ZXing)はWebカメラだけを必要とします。
UWPアプリでは、カメラを使用する必要がある場合、通常2つの方法があります。1つはを使用していMediaCapture
ます。あなたが言ったように、と許可のMediaCapture.InitializeAsync()
両方が必要です。webcam
microphone
もう1つの方法は、Windowsの組み込みカメラUIを使用することです。を使用している場合は、アプリのマニフェストファイルでwebcam
またはmicrophone
機能を指定しないでくださいCameraCaptureUI
。これは、Windowsの組み込みカメラアプリが信頼できるファーストパーティアプリであり、ユーザーがボタンを使用して写真、オーディオ、およびビデオのキャプチャを開始する必要があるためです。押す。
使用しているライブラリZxing.Net.Mobile
は、最初の方法を使用していMediaCapture
ます。WebCam
リンクしたサンプルと同じ機能のみを指定する場合は、MediaCaptureInitializationSettings
をビデオのみに設定する必要があります。例えば:
_mediaCapture = new MediaCapture();
try
{
await _mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings
{
StreamingCaptureMode = StreamingCaptureMode.Video
});
_isInitialized = true;
}
catch (UnauthorizedAccessException ex)
{
Debug.WriteLine("The app was denied access to the camera");
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加