0
私はプリズムアプリでMVVMとカメラのために働いとこれは私のCaptureElement.SourceプロップですStartPreviewAsync UWP
private async Task StartPreviewAsync(string deviceId)
{
try
{
_mediaCapture = new MediaCapture();
MediaCaptureInitializationSettings setting = new MediaCaptureInitializationSettings();
setting.VideoDeviceId = deviceId;
await _mediaCapture.InitializeAsync(setting);
//_displayRequest.RequestActive();
//DisplayInformation.AutoRotationPreferences = DisplayOrientations.Landscape;
CaptureElementSource = _mediaCapture;
//This line throw exception
await _mediaCapture.StartPreviewAsync();
}
catch (UnauthorizedAccessException)
{
Debug.WriteLine("The app was denied access to the camera");
}
catch (Exception ex)
{
Debug.WriteLine("MediaCapture initialization failed. {0}", ex.Message);
}
}
CaptureElementコンポーネントのプレビューを表示するには、このメソッドを使用しています:
public MediaCapture CaptureElementSource
{
get { return _captureElementSouce; }
set { SetProperty(ref _captureElementSouce, value); }
}
そして、私はこの例外を取得しています:
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at Mateo.UILogic.ViewModels.CameraSelectionPageViewModel.<StartPreviewAsync>d__111.MoveNext()
要求された操作で予期しないエラーが発生しました。プレビュー シンクが設定されていません
誰でも、私を手伝ってください。
あなたのビューモデルに 'MediaCapture'を置くのはなぜでしょうか?私は 'MediaCapture'がビューモデルに属しているとは思わない。 – Scavenger
@Scavenger私はあらゆる方法で試しましたが、MediaCaptureはコードの背後に存在するDispatcherで動作します。だから私は既にコードの上に自分のコードを書きました。 :Dあなたが言ったように、mediacaptureはVMに属していない –