WinForm中Windows Media Player无法播放视频且致应用崩溃
WinForm中Windows Media Player播放视频触发0xc0000005访问违规的解决方法
调整URL赋值时机
避免在Form1_Load事件中设置视频路径,改用Form_Shown事件。因为Load事件触发时,WMP控件的COM组件可能尚未完成初始化,直接赋值会导致内存访问错误。示例代码:private void Form1_Shown(object sender, EventArgs e) { axWindowsMediaPlayer1.URL = @"D:\jumpscare.mp4"; }验证控件就绪状态后再播放
设置URL前先检查控件的播放状态,确保组件已准备完毕:private void Form1_Shown(object sender, EventArgs e) { if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsReady) { axWindowsMediaPlayer1.URL = @"D:\jumpscare.mp4"; } }启用程序兼容模式
右键生成的应用程序exe文件,进入「属性→兼容性」,勾选「以兼容模式运行这个程序」,选择Windows 7或Windows 8。Windows 11的WMP控件存在部分兼容性问题,兼容模式可缓解这类内存访问冲突。检查系统WMP的可用性
打开系统自带的Windows Media Player,尝试播放目标视频文件,确认播放器本身能正常工作。如果系统WMP无法播放,可通过「设置→应用→可选功能→添加功能」重新安装Windows Media Player组件。修改项目平台目标
在Visual Studio中右键项目→「属性→生成」,将平台目标从「Any CPU」改为「x86」。WMP的COM组件优先适配32位环境,64位进程下容易出现访问违规问题。
内容的提问来源于stack exchange,提问作者Beliy.
相关产品推荐
相关产品推荐

