无法打开mp4';由C#UWP应用程序中的MediaCapture制作
本文关键字:应用程序 C#UWP 制作 MediaCapture mp4 | 更新日期: 2023-09-27 18:25:21
我正在C#中编写一个使用相机拍摄视频的UWP应用程序。
我的测试应用程序很简单:开始录制,等待五秒钟,然后停止录制。它将把录音保存为mp4。
然而,在我运行这个应用程序后,我无法使用Windows 10应用程序Movies&电视。当我双击文件时,什么都不会发生。我甚至不能打开电影&电视当我从「开始」菜单双击它时,也不会发生任何事情。
然而,我能够用非Windows商店应用程序Windows Media Player"打开…"mp4。在阅读了这个问题之后,如果你没有正确清理代码中的MediaCapture对象,其他应用程序可能会挂起;我的理论是,我没有正确清理MediaCapture;Windows商店应用Movies&电视因此受到影响,但非Windows商店应用程序Windows Media Player仍然可以播放视频。
以下是代码的重要部分:
WebCam类:
public async void InitVideo()
{
mediaCapture = new MediaCapture();
await mediaCapture.InitializeAsync();
}
public async void RecordVideo(string fileName)
{
recordStorageFile = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync(fileName, Windows.Storage.CreationCollisionOption.GenerateUniqueName);
MediaEncodingProfile recordProfile = MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Auto);
await mediaCapture.StartRecordToStorageFileAsync(recordProfile, recordStorageFile);
recording = true;
}
public async Task StopVideo()
{
await mediaCapture.StopRecordAsync();
recording = false;
}
public void Reset()
{
mediaCapture.Dispose();
mediaCapture = null;
}
在MainPage.xaml中,屏幕上有一个名为startRecording的按钮。这就是点击该按钮时发生的情况:
WebCam camera = new WebCam();
camera.InitVideo();
camera.RecordVideo("file.mp4");
await Task.Delay(TimeSpan.FromSeconds(5));
await camera.StopVideo();
camera.Reset();
我的理论正确吗?
从基本的视频捕获角度来看,您已经正确地完成了所有操作。如果您发现视频在Windows Media Player中打开良好,但在Windows Film/TV应用程序中没有打开,则可能是这些应用程序有问题。
我附加了一个助手类,我在自己的相机应用程序中使用它,您可能可以在这里获取一些信息:CameraCapture.cs-WindowsAppCodeSnippets(GitHub)