File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed
Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -209,18 +209,30 @@ public async ValueTask<IReadOnlyList<CameraInfo>> GetAvailableCameras(Cancellati
209209 /// <inheritdoc cref="ICameraView.CaptureImage"/>
210210 public async Task < Stream > CaptureImage ( CancellationToken token )
211211 {
212- var mediaStream = new TaskCompletionSource < Stream > ( ) ;
212+ var mediaStreamTCS = new TaskCompletionSource < Stream > ( ) ;
213213
214214 MediaCaptured += HandleMediaCaptured ;
215+ MediaCaptureFailed += HandleMediaCapturedFailed ;
216+
215217 await Handler . CameraManager . TakePicture ( token ) ;
216218
217- var stream = await mediaStream . Task . WaitAsync ( token ) ;
219+ var stream = await mediaStreamTCS . Task . WaitAsync ( token ) ;
218220 return stream ;
219221
220222 void HandleMediaCaptured ( object ? sender , MediaCapturedEventArgs e )
221223 {
222224 MediaCaptured -= HandleMediaCaptured ;
223- mediaStream . SetResult ( e . Media ) ;
225+ MediaCaptureFailed -= HandleMediaCapturedFailed ;
226+
227+ mediaStreamTCS . SetResult ( e . Media ) ;
228+ }
229+
230+ void HandleMediaCapturedFailed ( object ? sender , MediaCaptureFailedEventArgs e )
231+ {
232+ MediaCaptured -= HandleMediaCaptured ;
233+ MediaCaptureFailed -= HandleMediaCapturedFailed ;
234+
235+ mediaStreamTCS . SetException ( new CameraException ( e . FailureReason ) ) ;
224236 }
225237 }
226238
You can’t perform that action at this time.
0 commit comments