WPF 中嵌入Windows Media Player
2013-11-15 12:06
507 查看
上一篇通过MediaElement
控件在WPF 4 中制作了简单的媒体播放器。本篇将直接把Windows Media Player 嵌入WPF 中实现同样的效果。起初创建该实例是基于.Net Framework 4.0 完成后编译顺利通过,但F5 时出现了问题。提示无法加载Interop.WMPLib,调试了许久也没搞出个明堂。最后转用.Net 3.5 问题解决,难道是4.0 不支持?感兴趣的朋友可下载代码进一步研究。
1. 新建一个基于.Net Framework 3.5 的WPF 应用程序项目:WPFWMP。
2. 在工程中新建Windows Forms Control Library 项目:WMPControlLibrary。
下面要在WMPControlLibrary 中创建Windows Media Player 控件,在项目中加入Windows Media Player COM。
在左侧工具栏中若没有Windows Media Player 控件的话,可以右键General 选择Choose Items,在COM 组件列表中勾选Windows Media Player 选项。
将Windows Media Player 控件拖入设计窗口,并将Dock 设置为Fill 填充控件。
控件效果图:
F6 编译项目后会生成以下三个DLL 文件,这就是我们稍后将要在WPF 中用到的WMP 控件库。
回到WPF 项目在前篇文章的基础上,保留其中“Open File” 按键和Button 样式。将上面三个DLL 文件及System.Windows.Forms、WindowsFormsIntegration 加入项目。
在XAML 中加入AxWMPLib 命名空间,并将上篇MediaElement 替换为AxWindowsMediaPlayer 控件,注意此处是将WinForm 控件嵌入WPF 程序,所以要将AxWindowsMediaPlayer 控件放到<WindowsFormsHost>标签中。
通过Windows API Code Pack 为“Open File” 按键添加点击事件,默认打开Sample Video 文件夹,选择视频文件后自动播放。
下载地址
作者:李敬然(Gnie)
出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
控件在WPF 4 中制作了简单的媒体播放器。本篇将直接把Windows Media Player 嵌入WPF 中实现同样的效果。起初创建该实例是基于.Net Framework 4.0 完成后编译顺利通过,但F5 时出现了问题。提示无法加载Interop.WMPLib,调试了许久也没搞出个明堂。最后转用.Net 3.5 问题解决,难道是4.0 不支持?感兴趣的朋友可下载代码进一步研究。
创建项目
1. 新建一个基于.Net Framework 3.5 的WPF 应用程序项目:WPFWMP。2. 在工程中新建Windows Forms Control Library 项目:WMPControlLibrary。
创建WMP 控件
下面要在WMPControlLibrary 中创建Windows Media Player 控件,在项目中加入Windows Media Player COM。在左侧工具栏中若没有Windows Media Player 控件的话,可以右键General 选择Choose Items,在COM 组件列表中勾选Windows Media Player 选项。
将Windows Media Player 控件拖入设计窗口,并将Dock 设置为Fill 填充控件。
控件效果图:
F6 编译项目后会生成以下三个DLL 文件,这就是我们稍后将要在WPF 中用到的WMP 控件库。
嵌入WMP 控件
回到WPF 项目在前篇文章的基础上,保留其中“Open File” 按键和Button 样式。将上面三个DLL 文件及System.Windows.Forms、WindowsFormsIntegration 加入项目。在XAML 中加入AxWMPLib 命名空间,并将上篇MediaElement 替换为AxWindowsMediaPlayer 控件,注意此处是将WinForm 控件嵌入WPF 程序,所以要将AxWindowsMediaPlayer 控件放到<WindowsFormsHost>标签中。
<Window x:Class="WPFWMP.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mediaControl="clr-namespace:AxWMPLib;assembly=AxInterop.WMPLib" Title="WPF Media Player" Height="450" Width="520" Background="#FF554D4D"> <Window.Resources> <Style x:Key="btnStyle" TargetType="Button"> … … </Style> </Window.Resources> <StackPanel HorizontalAlignment="Center" Margin="10"> <Border BorderThickness="3" Background="Black"> … … <WindowsFormsHost Height="340" Width="450"> <mediaControl:AxWindowsMediaPlayer x:Name="wpfMediaPlayer"/> </WindowsFormsHost> </Border> <Button Content="Open File" Click="openFile_Click" Margin="10" Width="80" Style="{StaticResource btnStyle}"/> </StackPanel> </Window>
通过Windows API Code Pack 为“Open File” 按键添加点击事件,默认打开Sample Video 文件夹,选择视频文件后自动播放。
private void openFile_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = KnownFolders.SampleVideos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); cfd.InitialDirectoryShellContainer = selectedFolder; cfd.EnsureReadOnly = true; cfd.Filters.Add(new CommonFileDialogFilter("WMV Files", "*.wmv")); cfd.Filters.Add(new CommonFileDialogFilter("AVI Files", "*.avi")); cfd.Filters.Add(new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (cfd.ShowDialog() == CommonFileDialogResult.OK) { wpfMediaPlayer.URL = cfd.FileName; } }
源代码下载
下载地址作者:李敬然(Gnie)
出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
相关文章推荐
- WPF(.net4.0)嵌入windows Media Player 运行出错
- WPF(.net4.0)嵌入windows Media Player 运行出错
- WPF 中嵌入Windows Media Player
- WPF 中嵌入Windows Media Player
- 关于WPF中使用AxWindowsMediaPlayer的一些心得体会
- 在Web 页中嵌入Windows Media Player
- 页面嵌入Windows Media Player需要注意的
- html中的Object标签(如在jsp页面嵌入windows media player 就用到了)
- 解决烦人的Windows Media Player(web嵌入) 不能自动播放
- 页面嵌入Windows Media Player播放器代码需要注意的
- 在窗体上嵌入 Windows Media Player
- 关于Windows Media Player 不能播放 动态VBR编码的mp3文件
- AxWindowsMediaPlayer how to make the Tracker disappear when playing
- WindowsMediaPlayer的使用
- .NET中对WindowsMediaPlayer控件的调用
- Ubuntu FF 的Windows Media Player插件
- windows7开启Windows Media Player Network Sharing Service 失败的解决办法
- 三个Windows Media Player音乐插件
- 网页中嵌入widowsmediaplayer
- 如何在Windows中打开多个Windows Media Player