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

如何永久隐藏C#中Windows Media Player控件的错误提示框

隐藏Windows Media Player错误提示框的解决方案

核心思路

捕获Windows Media Player的错误事件,阻止默认错误提示框弹出,并自动重试请求(已知首次请求失败、第二次即可正常运行)。

具体步骤与代码修改

  1. 添加重试控制变量
    在Form1类顶部添加两个私有变量,用于记录当前播放地址和重试次数:
private int _retryCount = 0;
private string _currentPlayUrl = string.Empty;
  1. 添加错误事件处理逻辑
    给axWindowsMediaPlayer1绑定错误事件,处理首次请求失败的情况:
private void axWindowsMediaPlayer1_Error(object sender, AxWMPLib._WMPOCXEvents_ErrorEvent e)
{
    // 阻止系统默认错误提示框弹出
    e.cancelDisplay = true;

    // 最多重试1次(匹配你的场景)
    if (_retryCount < 1 && !string.IsNullOrEmpty(_currentPlayUrl))
    {
        _retryCount++;
        // 重新发起播放请求
        axWindowsMediaPlayer1.URL = _currentPlayUrl;
        axWindowsMediaPlayer1.Ctlcontrols.play();
    }
    else if (_retryCount >= 1)
    {
        // 重试失败后提示用户
        MessageBox.Show("播放失败,请稍后重试", "提示", MessageBoxButtons.OK);
        _retryCount = 0; // 重置计数,方便下次操作
    }
}
  1. 修改按钮点击事件
    调整所有播放按钮的逻辑,更新当前播放地址并重置重试计数,同时移除原来的错误提示弹窗:
    以button1_Click_1为例,button4_Click、button6_Click做同样修改:
private void button1_Click_1(object sender, EventArgs e)
{
    _currentPlayUrl = "http://y0b.net/radiosa.m3u";
    _retryCount = 0;
    axWindowsMediaPlayer1.URL = _currentPlayUrl;
    axWindowsMediaPlayer1.Ctlcontrols.play();
    label2.Text = "Playing Radio SA";
}
  1. 绑定错误事件(可选)
    如果不会通过设计器绑定事件,可在Form构造函数里手动绑定:
public Form1()
{
    InitializeComponent();
    axWindowsMediaPlayer1.Error += axWindowsMediaPlayer1_Error;
}

效果说明

修改完成后,首次请求失败时不会弹出系统默认的错误提示框,程序会自动重试一次;若重试仍失败,才会弹出自定义提示。

内容的提问来源于stack exchange,提问作者Adit Gadkary

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:20:37