在 Winforms 应用程序中使用 Windows Media Player 播放视频时出现问题
Posted
技术标签:
【中文标题】在 Winforms 应用程序中使用 Windows Media Player 播放视频时出现问题【英文标题】:Problems playing video with Windows Media Player in Winforms App 【发布时间】:2021-11-25 11:09:34 【问题描述】:目标。我在 Visual Studio 2019 中创建了一个 9-Form 应用程序,我正在尝试以我的一种形式播放一个视频文件,该文件与可执行文件( .exe) 我的 winforms 应用程序。
步骤。我通过“COM 组件”安装了 Windows Media Player 功能,并在我的工具箱中按原样显示(尽管该图标没有出现在工具箱内的标题旁边)。之后,我将它拖放到表单中,以便根据 Microsoft 文档编写以下代码。
private void button1_Click(object sender, System.EventArgs e)
axWindowsMediaPlayer1.URL = "video delphi.mp4";
实际结果。 虽然当我在表单中拖动播放器时,它会按原样显示,但是当我运行应用程序时,它会变成空白,因为它从未被放置在那里或在我的表单中被拖动/使用。我从属性中检查了播放器是否可见并已启用。在某些时候,通过按下播放按钮,我只能听到音频而没有视频。
收到的错误/通知。 1. 当我第一次尝试查看发生了什么时,我在应用程序运行期间收到了一条通知,表明该文件不受支持,尽管安装了向我展示 (.mp4) 扩展名,它只显示 (,) 符号。该通知不是来自 VS 2019,而是来自玩家本身。 2. 目前我收到 C00D1179 错误,而上述通知不再出现。
【问题讨论】:
我不相信 Windows Media player 在不安装编解码器的情况下支持 .mp4。这是一个可能有用的链接:codecguide.com/download_kl.htm您可以找到其他可能也有用的链接。 不!我试过了!!! 我在下面添加了分步说明。 【参考方案1】:要使用 Windows Media Player 播放 .mp4 文件,请尝试以下经过测试的方法。
先决条件:如果尚未安装,则必须安装“mp4”编解码器 - 例如K-Lite codec pack 或其他编解码器包。
VS 2019:
创建一个新项目
点击文件
选择新建
选择项目
选择以下选项:
点击Windows Forms App (.NET Framework)
点击下一步
输入所需的项目名称(例如:MediaPlayerTest)
点击创建
添加参考
在VS菜单中,点击Project 选择添加参考... 点击COM 选择 Windows 媒体播放器 点击确定打开解决方案资源管理器:
在VS菜单中,点击查看 选择解决方案资源管理器在 Designer 中打开 Form1
在解决方案资源管理器中,双击 Form1.cs打开工具箱:
在VS菜单中,点击查看 选择工具箱 搜索:Windows 媒体播放器 如果未找到 Windows Media Player,请将其添加到工具箱中。将 Windows Media Player 添加到工具箱(如果工具箱中尚不存在)
右键单击所有 Windows 窗体 选择选择项目...。 加载完成后,点击COM组件。 选中“Windows 媒体播放器**。 点击确定 Windows Media Player 现在应该存在于工具箱的“所有 Windows 窗体”下。将 Windows Media Player 添加到 Form1
将 Windows Media Player 从工具箱拖到 Form1 上。向 Form1 添加按钮
将两个按钮从工具箱拖到 Form1 上 将按钮 1 重命名为btnPlay
将按钮 2 重命名为 btnStop
双击btnPlay
创建点击事件处理程序
双击btnStop
创建点击事件处理程序
修改/添加代码到 Form1.cs
在解决方案资源管理器中,右键单击 Form1.cs 选择查看代码将所需的 .mp4 文件(例如:ocean.mp4)复制到您的 .exe 文件所在的文件夹中。
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MediaPlayerTest
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
axWindowsMediaPlayer1.uiMode = "none";
private void btnPlay_Click(object sender, EventArgs e)
string filename = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().FullName), "ocean.mp4");
axWindowsMediaPlayer1.URL = filename;
private void btnStop_Click(object sender, EventArgs e)
//stop
axWindowsMediaPlayer1.Ctlcontrols.stop();
测试媒体播放器:
运行你的程序 点击播放按钮资源:
Embedding the Windows Media Player Control in a C# Solution【讨论】:
非常感谢您的详细解答。第二天我发布了我的问题,我发现我使用的模板是简单的“Windows Forms App”,而不是其中包含“(.NET Framework)”的模板。我测试了它,我对自己的愚蠢感到非常沮丧,因为我已经完成了我的项目,我不能从头开始,只是因为这个错误。再次感谢!!!以上是关于在 Winforms 应用程序中使用 Windows Media Player 播放视频时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
在 WinForms 应用程序中使用 WPF,将应用程序资源放在哪里?
在 Winforms 应用程序中使用 Windows Media Player 播放视频时出现问题