2017-05-25 18 views
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() 

要求された操作で予期しないエラーが発生しました。プレビュー シンクが設定されていません

誰でも、私を手伝ってください。

+0

あなたのビューモデルに 'MediaCapture'を置くのはなぜでしょうか?私は 'MediaCapture'がビューモデルに属しているとは思わない。 – Scavenger

+0

@Scavenger私はあらゆる方法で試しましたが、MediaCaptureはコードの背後に存在するDispatcherで動作します。だから私は既にコードの上に自分のコードを書きました。 :Dあなたが言ったように、mediacaptureはVMに属していない –

答えて

0

私は、Package.appxManifst - > CapabilitiesセクションのWebCamとMicrophoneのオプションをチェックしていないのと同じエラーが表示されました。