我是Windows Phone 8.1开发的新手,我目前正在尝试录制视频并将其存储在Windows Phone上。但是,我不知道如何做到这一点。我在下面有一些代码摘录,它是按下开始/停止记录按钮时执行的代码。代码来自一个例子。
我的问题:
我希望程序在停止录制时执行一种方法。我如何获得此方法中的视频文件名?
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
}
}
答案 0 :(得分:0)
使用await关键字,异步调用StartVideoCaptureAsync。 因此,只有在完成此异步任务后,才会执行下一行代码。 这意味着下面的代码行(以及所有下面的代码):
CapturedVideoElement.Visibility = Visibility.Visible
将在录制结束时执行。
因此,如果您需要在录制完成后执行一个方法,您可以在调用StartVideoCaptureAsync后将其放入。