C# Winform使用Windows Media Player播放多媒体整理
一、简单使用示例步骤
1.添加Windows Media Player 组件当前是系统的 Com组件
工具箱》右键“选择项”》选择Com组件
2.控件拖拽到桌面,使用
private void button1_Click(object sender, EventArgs e)
{
//播放开始声音
axWindowsMediaPlayer2.URL = "start.mp3"; //指定音频文件
axWindowsMediaPlayer2.settings.volume = ;//指定音量
axWindowsMediaPlayer2.Ctlcontrols.play();//开始播放
}
播放状态监听
//播放状态监听
axWindowsMediaPlayer1.PlayStateChange += (eSender, eState) =>
{
if (WMPLib.WMPPlayState.wmppsMediaEnded.GetHashCode() == eState.newState)
{
axWindowsMediaPlayer1.close(); //结束播放,释放文件
}
};
二、更多使用说明
Media player控件基本使用步骤如下:
属性/方法名说明: [基本属性] uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible(不计大小写) playState:integer; 播放状态。这个属性改变时同时引发PlayStateChange事件与StateChange事件。 取值范围为枚举型:WMPLib.WMPPlayState,它的成员如下: wmppsUndefined = 0; //未知状态 enableContextMenu:Boolean; 启用/禁用右键菜单 fullScreen:boolean; 是否全屏显示 //播放器基本控制 Ctlcontrols.play; 播放 [settings] wmp.settings //播放器基本设置 settings.volume:integer; 音量,0-100 [currentMedia] wmp.currentMedia //当前媒体属性 currentMedia.duration:double; 媒体总长度 [currentPlaylist] wmp.currentPlaylist //当前播放列表属性 currentPlaylist.count:integer; 当前播放列表所包含媒体数 在视频播放之后,可以通过如下方式读取源视频的宽度和高度,然后设置其还原为原始的大小. 打开媒体文件并播放: Dim filePath As String 注意:在上面程序中,如果在后面加上一个: msgbox(AxWindowsMediaPlayer1.currentMedia.duration.ToString ) 则显示结果很可能为0,因此,这时候很可能获取不到文件的播放时间长度,容易出错。所以在利用的时候可以加一个timer控件: Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick 此时msgbox便会显示文件播放长度。 2. Ctlcontrols属性 Ctlcontrols属性是AxWindowsMediaPlayer的一个重要属性, 此控件中有许多常用成员。 使用WMP的常见问题: 一、升级wmp后,再拖windows media player控件至窗体出错的问题(至今没解决,应当是修改工程序文件,用文本编辑器) 二、播放rmvb/rm等非官方格式文件要先双击文件再点播放按钮,而不能直接播放的问题,并弹出消息框:Windows Media Player下载文件遇到问题。有关帮助信息请单击“Web帮助”。消息下面两个按钮:关闭、Web帮助。我没有找到出现这个问题的官方说明。我个人意 见,这是因为wmp默认只播能播放官方指定的几种类型的媒体。如果不是,wmp会试图下载对应的解码器来播放。而这个下载过程失败了,所以弹出这个消息 框。wmp好像没有去判断这个解码器是否已经存在。但是,如果你再点播放的话,又能播放,这是什么原因呢?应当是wmp在这次会试图搜索本机上的解码器以 图播放媒体。怎样解决这个点两次鼠标的问题呢?如下: 先设置属性:wmp.settings.enableErrorDialogs = false;事实上这个属性默认就是false。不用设置。 private void wmp_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 三、怎样获得一个媒体文件中的信息,并且修改媒体的一些信息? 有办法:AxWindowsMediaPlayer.newMedia(filename),它会创建一个IWMPMedia的实例。用它的setItemInfo就成了。至于有哪些信息可供设置,可去msdn中查,里面列举了所有相关信息。 四、IWMPPlayList是不是鸡肋???????? 五、播放器控件有几个组成部分,可有隐藏其中相关部分的方法? 媒体播放器包括如下元素: 就是这么几个部分,网上有资料说控件提供方法控制它们显示与否,但是我在sdk中并没有找到它们。唯一可以粗略控制它们的就是uiMode属性。它的取值前面有。 六、控件的网络设置,如设置代理、缓冲次数、缓冲时间等信息在哪设置? AxWindowsMediaPlayer.netWork。它是IWMPNetWork的实例。 七、像暴风有字幕相关信息的设置,wmp控件有这个功能吗? 当然有。就是AxWindowsMediaPlayer.closedCaption。它是IWMPClosedCaption的实例。 |
C# Winform使用Windows Media Player播放多媒体整理的更多相关文章
- C# WinForm 添加Windows Media Player 控件调试出现未能加载文件或程序集Interop.WMPLib,该怎么解决
C# WinForm 添加Windows Media Player 控件调试出现未能加载文件或程序集Interop.WMPLib如标题,在窗体中添加Windows Media Player 控件,当调 ...
- windows media player 播放视频
一.新建windows应用程序项目,添加vedioForm窗体 二.在com组件中找到windows media player,添加引用 三.代码如下: public partial class Ve ...
- Windows Media Player播放视频导致程序闪退
在有的电脑上发现,使用Windows Media Player组件播放视频导致程序闪退. 发现是显卡问题,独立显卡换成集成显卡 解决: 打开显卡控制面板->管理3D设置->集成图形-> ...
- winform中的Windows Media Player播放器设置
namespace WindowsMediaPlayer{ public partial class Form1 : Form { Form2 form2;//声明from2窗体 public For ...
- windows media player 中播放pls的方法
windows media player目前只能播放 wpl 和 asm格式的列表文件.而linux下mplayer和vlc支持的pls,很遗憾没法支持. 不过,老外写了个“open pls in w ...
- win7自带windows media player 已停止工作
解决方法如下: 在计算机开始,菜单找到控制面板 ,然后打开程序和功能,选择打开或关闭window功能,媒体功能.再取消windows Media Center Windows MediaPlayer选 ...
- C#中Windows Media Player控件使用实例|方法
Windows Media Player控件Windows Media Player是一种媒体播放器,可以播放当前最流行的音频.视频文件和大多数混合型的多媒体文件.为了便于程序的开发,Visual S ...
- winform播放视频(windows media player)
1.找到windows media player 工具箱常规下边右键,右键弹窗点击“选择项”,选择工具箱窗口点击“COM组件”,找到 Windows Media Player 勾选,点击确定 2.使用 ...
- Windows Media Player安装了却不能播放网页上的视频
前段时间遇到Windows Media Player安装了却不能播放网页上的视频的问题,在网上查找资料时,发现大部分资料都没能解决我这个问题.偶尔试了网上一牛人的方法,后来竟然解决了.现在再找那个网页 ...
随机推荐
- IIS:另一个程序正在使用此文件进程无法访问。
启动网站时,遇到这个错误,一般是端口已经被占用,更换一个空闲端口即可. 通过以下命令可查询 根据最后一列的数字在任务管理器中可查看被哪个程序占用了
- mongodb输错命令后不能删除问题
在用crt连接Linux操作MongoDB时,命令输错了,想删除的时候,却删除不了,原因是crt的配置有问题,解决办法如下 第一步:选项-->会话选项
- Codeforces 362D Fools and Foolproof Roads
Fools and Foolproof Roads 并查集瞎搞搞就行, 有点小坑点. #include<bits/stdc++.h> #define LL long long #defin ...
- Linux read line
cat ./port_list|while read linedo done
- RF:RF实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性—Jason niu
%RF:RF实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性 load data.mat a = randperm(569); Train = data(a(1:500),:); ...
- poj 2528 Mayor’s posters 【离散化】+【线段树】
<题目链接> 题目大意: 往一堵墙上贴海报,依次输出这些海报张贴的范围,这些海报能够相互覆盖,问最后能够看见几张海报? 解题分析: 由于是给出每张海报的区间,所以在这些区间内的很多点可能用 ...
- Pytorch安装(基于anaconda虚拟环境)
Pytorch安装倒腾了一上午终于搞定,记录一下安装过程. 1. 首先尝试官网的安装方式,但是网速太慢了. 除去cudnn100, torchvision和pytorch三个文件,其余可以直接从清华镜 ...
- docker eureka 注册中心 服务提供者通信机制
docker run -d --name gateway9527 -p 9527:9527 --add-host=eureka7001.com:192.168.1.15 -v /var/jen ...
- Python 合并两个列表的多种方式,合并两个字典的多种方式
一.合并列表 1.最简单的,使用+连接符: >>> a = [1,2,3] >>> b = [7,8,9] >>> a + b [1, 2, 3, ...
- Unity容器在asp.net mvc中的IOC应用及AOP应用
<asp.net-mvc框架揭秘>一书中,有个示例,是使用unity容器来注入自定义的控制器工厂.代码示例可以自己去下载源码,在这里我就不说了.IOC容器的本质是解耦的实例化接口类,而如何 ...