WPF下内嵌Windows MediaPlayer播放器

最近用了的加载播放器,来播放视频,没有其他要求,于是就打算用Windows自带的MediaPlayer播放器来实现,不过在wpf下,稍微要麻烦一点。
第一步 创建和设置项目
1、创建一个名为 HostingAxInWpf 的 WPF 应用程序项目。
2、在工程中新建Windows Forms Control Library 项目:WMPControlLibrary。
向解决方案中添加一个 Windows 窗体控件库项目,将该项目命名为 WmpAxLib。
这里写图片描述
3.在 WmpAxLib 项目中,添加对 Windows Media Player 程序集(名为 wmp.dll)的引用。
这里写图片描述
4.打开“工具箱”。
5.在“工具箱”中右击,再单击“选择项”。
6.单击“COM 组件”选项卡,选择“Windows Media Player”控件,然后单击“确定”。
Windows Media Player 控件会添加到“工具箱”中。注意:需要在底部右键操作。
这里写图片描述

第二步 创建 ActiveX 控件

Microsoft Visual Studio 自动在 Microsoft ActiveX 控件添加到设计图面时为该控件生成 AxHost 包装类。 下面的过程会创建一个名为 AxInterop.WMPLib.dll 的托管程序集。

1.在 Windows 窗体设计器中,打开 WmpAxControl.vb 或 WmpAxControl.cs。
2.从“工具箱”中,将 Windows Media Player 控件添加到设计图面。
3.在“属性”窗口中,将 Windows Media Player 控件的 Dock 属性的值设置为 Fill。
4.生成 WmpAxLib 控件库项目。
这里写图片描述

第三步 承载 ActiveX 控件
1.在 HostingAxInWpf 项目中,添加一个对所生成的 ActiveX 互操作程序集的引用。
此程序集的名称为 AxInterop.WMPLib.dll,当您导入 Windows Media Player 控件时,此程序集会添加到 WmpAxLib 项目的 Debug 文件夹中。
2.添加一个对名为 WindowsFormsIntegration.dll 的 WindowsFormsIntegration 程序集的引用。
3.添加一个对名为 System.Windows.Forms.dll 的 Windows Forms程序集的引用。
4.在 WPF 设计器中打开 MainWindow.xaml。
5.将 Grid 元素命名为 grid1。

<Grid >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"></ColumnDefinition>
            <ColumnDefinition Width="1*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid x:Name="sp1" Margin="0 0 2 0" Grid.Column="0"></Grid>
        <Grid x:Name="sp2" Margin="2 0 0 0"  Grid.Column="1"></Grid>
    </Grid>

6.在设计视图或 XAML 视图中,选择 Window 元素。
7.在“属性”窗口中,单击“事件”选项卡。
8.双击 Loaded 事件。
9.插入下面的代码以处理 Loaded 事件。

 private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.Integration.WindowsFormsHost hostBox = new System.Windows.Forms.Integration.WindowsFormsHost();
            System.Windows.Forms.Integration.WindowsFormsHost hostDome = new System.Windows.Forms.Integration.WindowsFormsHost();
            AxWMPLib.AxWindowsMediaPlayer axWmpBox = new AxWMPLib.AxWindowsMediaPlayer();
            AxWMPLib.AxWindowsMediaPlayer axWmpDome = new AxWMPLib.AxWindowsMediaPlayer();
            hostBox.Child = axWmpBox;
            hostDome.Child = axWmpDome;
            this.sp1.Children.Add(hostBox);
            this.sp2.Children.Add(hostDome);
            axWmpBox.URL = @"C:\1\1.avi";
            axWmpDome.URL = @"C:\2\2.avi";
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值