是否可以将视频嵌入Windows Media Player?

时间:2019-04-16 12:54:40

标签: visual-studio winforms c#-4.0 panel axwindowsmediaplayer

我在Visual Studio中有一个winform应用程序。在主界面上,我有面板(主页面板,关于我们面板和与我们联系面板)。当我单击将我带到主页面板的按钮时,我希望视频已经在那里(显然是在Windows Media Player中)。并在单击“主面板按钮”时自动播放。客户不必去寻找视频。

有没有办法做到这一点? 请帮忙。

1 个答案:

答案 0 :(得分:0)

  • 将WMP控件添加到Visual Studio中的“工具箱”面板中:https://docs.microsoft.com/en-us/windows/desktop/wmp/using-the-windows-media-player-control-with-microsoft-visual-studio
  • 将WMP控件从“工具箱”拖动到表单设计器中的“主页”面板。
  • 将视频添加到项目中,并在其属性中,在“复制到输出目录”选项中选择“如果更新则复制”。
  • 覆盖Form.OnLoad或找到另一个合适的位置,并添加代码,为播放器提供视频的URL并设置其他属性。

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
    
        var location = Assembly.GetExecutingAssembly().Location;
        var folder = Path.GetDirectoryName(location);
        var path = Path.Combine(folder, "small.avi");
        axWindowsMediaPlayer1.URL = path;
    
        axWindowsMediaPlayer1.uiMode = "none";
    
        // autoplay if current page index is 0 (home?)
        if (tabControl1.SelectedIndex == 0)
            axWindowsMediaPlayer1.Ctlcontrols.play();
    }
    

如果您希望播放器在每次显示页面时都重新开始播放,请将处理程序添加到TabControl.SelectedIndexChanged事件:

this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.TabControl1_SelectedIndexChanged);

并像这样实现它:

private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (tabControl1.SelectedIndex == 0)
        axWindowsMediaPlayer1.Ctlcontrols.play();
}