躺着的废鱼 2023-02-17 14:41 采纳率: 20%
浏览 18
已结题

winform的一个插入视频问题

winform的framework可以插入视频
但是我用了core框架却不支持
有什么办法可以让core框架插入视频

  • 写回答

2条回答 默认 最新

  • 码老头 2023-02-17 16:00
    关注

    WinForms的Framework在Windows上使用的是Windows Media Player COM组件来支持视频的播放。由于.NET Core框架的设计不同于.NET Framework,因此不能直接使用Windows Media Player COM组件。不过,您仍然可以使用其他开源的第三方库来在.NET Core WinForms应用程序中播放视频。以下是几个可用的库:

    • LibVLCSharp:是一个基于VLC媒体播放器引擎的.NET标准库,可以在.NET Core应用程序中使用。您可以使用其提供的VideoView控件来嵌入视频播放器。

    • FFmpeg.AutoGen:是一个使用FFmpeg多媒体处理库的.NET标准库,它可以在.NET Core应用程序中使用。您可以使用其提供的AVPlayer控件来嵌入视频播放器。

    • DirectX库:DirectX是一个游戏开发库,但也可以用于WinForms应用程序中的视频播放。您可以使用其提供的Video类来嵌入视频播放器。

    需要注意的是,这些库都需要一些学习和设置才能正确地集成到您的应用程序中。另外,您还需要考虑视频格式的兼容性和其他问题,以确保您的应用程序可以正确地播放视频。

    可以按照以下步骤在WinForm .NET Core应用程序中使用LibVLCSharp播放视频:

    • 首先,在Visual Studio中安装LibVLCSharp NuGet包。您可以在NuGet包管理器中搜索“LibVLCSharp”并安装最新版本。
    • 在窗体中添加一个Panel控件来承载视频播放器。
    • 创建一个LibVLC实例和一个VideoView控件实例。在Form类中添加以下代码:
    using LibVLCSharp.Shared; // 引入LibVLCSharp命名空间
    
    public partial class Form1 : Form
    {
        private LibVLC _libVLC; // 声明LibVLC实例
        private VideoView _videoView; // 声明VideoView控件实例
    
        public Form1()
        {
            InitializeComponent(); // 初始化窗体控件
    
            Core.Initialize(); // 初始化LibVLCSharp
    
            // 创建LibVLC实例
            _libVLC = new LibVLC();
    
            // 创建VideoView控件
            _videoView = new VideoView();
            _videoView.Location = new Point(0, 0); // 设置VideoView控件在Panel控件中的位置
            _videoView.Size = panel1.Size; // 设置VideoView控件的大小
            _videoView.Dock = DockStyle.Fill; // 设置VideoView控件随Panel控件自适应大小
            panel1.Controls.Add(_videoView); // 将VideoView控件添加到Panel控件中
        }
    }
    
    • 播放视频。您可以在需要播放视频时调用以下代码:
    var media = new Media(_libVLC, new Uri("path_to_video_file")); // 创建Media实例,指定要播放的视频文件
    _mediaPlayer = new MediaPlayer(media) { EnableHardwareDecoding = true }; // 创建MediaPlayer实例,并启用硬件解码
    _videoView.MediaPlayer = _mediaPlayer; // 将MediaPlayer实例赋值给VideoView控件的MediaPlayer属性
    _mediaPlayer.Play(); // 播放视频
    

    在这里,path_to_video_file是您要播放的视频文件的路径。_mediaPlayer是MediaPlayer实例。

    • 在Form关闭事件中释放资源。在Form类中添加以下代码:
    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        _mediaPlayer?.Stop(); // 停止播放
        _mediaPlayer?.Dispose(); // 释放MediaPlayer实例
        _libVLC?.Dispose(); // 释放LibVLC实例
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 2月17日

悬赏问题

  • ¥50 hyper默认的default switch
  • ¥15 网站打不开,提示502 Bad Gateway
  • ¥20 基于MATLAB的绝热压缩空气储能系统代码咨询
  • ¥15 R语言建立随机森林模型出现的问题
  • ¥20 unity内置语言切换的按钮设置
  • ¥15 中级微观经济学,生产可能性边界问题
  • ¥15 TCP传输时不同网卡传输用时差异过大
  • ¥15 请各位看看我写的属于什么算法,或者有更正确的写法?
  • ¥15 html5 qrcode 扫描器
  • ¥15 爬取网页信息并保存需要完整代码