WinRT Toolkit Windows Phone 8.1 сохранить видео с помощью CameraCaptureControl
Я довольно новичок в разработке для Windows Phone 8.1, и сейчас я пытаюсь записать видео и сохранить его на Windows Phone. Однако я понятия не имею, как это можно сделать. У меня есть фрагмент кода ниже, который является кодом, выполняемым при нажатии кнопки начала / остановки записи. Код взят из примера.
Мои вопросы:
- Как _videoFile может быть сохранен в VideoLibrary?
Желательно, чтобы программа выполняла метод, когда запись остановлена. Как я могу получить имя файла видео внутри этого метода?
private async void OnCaptureVideoButtonClick(object sender, RoutedEventArgs e) { if (!_capturingVideo) { //BtnStartStop.Content = "Stop"; StartAppBarButton.Icon = new SymbolIcon(Symbol.Stop); _capturingVideo = true; _videoFile = await TestedControl.StartVideoCaptureAsync(KnownFolders.VideosLibrary, "capture.mp4"); CapturedVideoElement.Visibility = Visibility.Visible; IRandomAccessStreamWithContentType stream; try { stream = await TryCatchRetry.RunWithDelayAsync<Exception, IRandomAccessStreamWithContentType>( _videoFile.OpenReadAsync(), TimeSpan.FromSeconds(0.5), 10); } catch (Exception ex) { #pragma warning disable 4014 new MessageDialog(ex.Message, "Error").ShowAsync(); #pragma warning restore 4014 return; } CapturedVideoElement.SetSource(stream, _videoFile.ContentType); } else { StartAppBarButton.Icon = new SymbolIcon(Symbol.Camera); _capturingVideo = false; #pragma warning disable 4014 await TestedControl.StopCapture(); #pragma warning restore 4014 } }
1 ответ
Используя ключевое слово await, StartVideoCaptureAsync вызывается асинхронно. Поэтому следующая строка кода будет выполнена только после завершения этой асинхронной задачи. Это означает, что строка кода ниже (и все последующие):
CapturedVideoElement.Visibility = Visibility.Visible
будет выполняться в конце записи.
Поэтому, если вам нужно выполнить метод после завершения записи, вы можете просто поместить его после вызова StartVideoCaptureAsync.