c# 视频播放之Windows Media Player

时间:2024-01-22 12:53:27

最近想给软件加个视频播放功能,在网上看有好几个方式,最后决定用 Windows Media Player 和Vlc.DotNet.Forms。

这篇文章主要讲Windows Media Player,它的优点:代码简单,视频操作功能都有,能播放网络和本地视频。缺点:需要电脑安装视频对应的解码器,适应性很差,只适合自己玩,不能用于正规开发。

我试了四台电脑,两台没问题,一台改了视频格式也能播放,另一台死活没画面,最后放弃这个方法。

下面是具体代码

1、添加组件

在工具箱空白处点击鼠标右键,点击“选择项”

在com组件中找到 Windows Media Player, 添加上。

下面是代码,这个代码窗体加载后会自动播放,如果有缓存会等待2秒后继续自动播放。

    public partial class Form_VideoPlaying : Form
    {
        public Form_VideoPlaying()
        {
            InitializeComponent();
        }

        private void Form_VideoPlaying_Load(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.URL = "http://www.XXXXX.com/video/20240111155329.mp4";
            axWindowsMediaPlayer1.Ctlcontrols.play();
            axWindowsMediaPlayer1.stretchToFit = true;  // 自动缩放屏幕
        }

        private void Form_VideoPlaying_FormClosed(object sender, FormClosedEventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.stop();
            axWindowsMediaPlayer1.Dispose();
        }

        private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
        {
            // 视频加载时候,等待2秒后,重新播放
            if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsBuffering)
            {
                Thread.Sleep(2000);
                axWindowsMediaPlayer1.Ctlcontrols.play();
            }
        }
    }