无法打开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();

我的理论正确吗?

无法打开mp4';由C#UWP应用程序中的MediaCapture制作

从基本的视频捕获角度来看,您已经正确地完成了所有操作。如果您发现视频在Windows Media Player中打开良好,但在Windows Film/TV应用程序中没有打开,则可能是这些应用程序有问题。

我附加了一个助手类,我在自己的相机应用程序中使用它,您可能可以在这里获取一些信息:CameraCapture.cs-WindowsAppCodeSnippets(GitHub)