You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForm嵌入LibVLC播放器实现播放指定时长后自动关闭的实现方法

WinForm LibVLC播放器5分钟自动关闭实现方案

你可以直接使用WinForm原生的System.Windows.Forms.Timer实现定时关闭逻辑,不会出现跨线程操作UI控件的异常,修改步骤如下:

  1. 首先在窗体类中声明类级别的定时器变量
// 放在窗体类的成员声明区域,和你原有_libVLC、_videoView等变量同级
private System.Windows.Forms.Timer _autoCloseTimer;
  1. 修改PlayerForm_Load方法,新增定时器启动逻辑
private void PlayerForm_Load(object sender, EventArgs e)
{
    Core.Initialize();
    _libVLC = new LibVLC();
    _videoView.MediaPlayer = new MediaPlayer(_libVLC);
    _videoView.Dock = DockStyle.Fill;
    // Add it to the form
    Controls.Add(_videoView);
    var uri = new Uri(videolink);
    var media = new Media(_libVLC, uri, ":input-repeat=65535");
    _videoView.MediaPlayer.Media = media;
    _videoView.MediaPlayer.Play();

    //Set fullscreen
    this.FormBorderStyle = FormBorderStyle.None;
    this.Size = screen.Bounds.Size;
    this.Location = screen.Bounds.Location;

    // 以下为新增自动关闭逻辑
    _autoCloseTimer = new System.Windows.Forms.Timer();
    // 定时时长设置为5分钟,单位为毫秒
    _autoCloseTimer.Interval = 5 * 60 * 1000;
    _autoCloseTimer.Tick += AutoCloseTimer_Tick;
    _autoCloseTimer.Start();
}
  1. 新增定时器触发事件方法,处理停止播放、资源释放和窗口关闭逻辑
private void AutoCloseTimer_Tick(object sender, EventArgs e)
{
    // 停止并释放定时器
    _autoCloseTimer.Stop();
    _autoCloseTimer.Dispose();

    // 释放播放器资源
    if (_videoView.MediaPlayer.IsPlaying)
    {
        _videoView.MediaPlayer.Stop();
    }
    _videoView.MediaPlayer.Dispose();
    _libVLC.Dispose();

    // 关闭当前播放窗口
    this.Close();
}

补充注意事项

建议在窗体的FormClosing事件中新增兜底的资源释放逻辑,避免用户手动关闭窗口时出现资源泄漏:

private void PlayerForm_FormClosing(object sender, FormClosingEventArgs e)
{
    // 定时器未触发的话先释放定时器
    if (_autoCloseTimer != null && _autoCloseTimer.Enabled)
    {
        _autoCloseTimer.Stop();
        _autoCloseTimer.Dispose();
    }
    // 释放播放器相关资源
    if (_videoView.MediaPlayer != null)
    {
        if (_videoView.MediaPlayer.IsPlaying)
        {
            _videoView.MediaPlayer.Stop();
        }
        _videoView.MediaPlayer.Dispose();
    }
    _libVLC?.Dispose();
}

内容的提问来源于stack exchange,提问作者Malik Mehmood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:18:03