【问题标题】:Problems playing video with Windows Media Player in Winforms App在 Winforms 应用程序中使用 Windows Media Player 播放视频时出现问题
【发布时间】: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您可以找到其他可能也有用的链接。
  • 不!我试过了!!!
  • 我在下面添加了分步说明。

标签: c# forms visual-studio winforms media-player


【解决方案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();
        }
    }
}

测试媒体播放器

  • 运行你的程序
  • 点击播放按钮

资源

【讨论】:

  • 非常感谢您的详细解答。第二天我发布了我的问题,我发现我使用的模板是简单的“Windows Forms App”,而不是其中包含“(.NET Framework)”的模板。我测试了它,我对自己的愚蠢感到非常沮丧,因为我已经完成了我的项目,我不能从头开始,只是因为这个错误。再次感谢!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多