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安装了却不能播放网页上的视频的问题,在网上查找资料时,发现大部分资料都没能解决我这个问题.偶尔试了网上一牛人的方法,后来竟然解决了.现在再找那个网页 ...
随机推荐
- Codeforces 542D Superhero's Job 数论 哈希表 搜索
原文链接https://www.cnblogs.com/zhouzhendong/p/CF542D.html 题目传送门 - CF542D 题目传送门 - 51Nod1477 题意 定义公式 $J(x ...
- RocketMQ事务消息回查设计方案
用户U1从A银行系统转账给B银行系统的用户U2的处理过程如下:第一步:A银行系统生成一条转账消息,以事务消息的方式写入RocketMQ,此时B银行系统不可见这条消息(Prepare阶段) 第二步:写入 ...
- B-number 数位dp
求有 13且能被13整除的个数 显然已目前的四个状态无法对问题进行完全解答了 关于能否被13整除 有必要加一个mod状态 当pre为2的时候说明已经存在过13了(直接继承即可) 当pre为1说 ...
- 028 IDEA中下载与上传程序
在学习的时候,更多的时候在使用eclipse,但是在使用过程中,IDEA有时候使用起来更加方便轻松. 关于,在使用过程中的一些常识,这里谢谢写写文档. 一:拉代码 1.说明 在第一次开始项目的时候,需 ...
- Machine Learning 神器 - sklearn
Sklearn 官网提供了一个流程图, 蓝色圆圈内是判断条件,绿色方框内是可以选择的算法: 从 START 开始,首先看数据的样本是否 >50,小于则需要收集更多的数据. 由图中,可以看到算法有 ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
- Centos7服务器中安装MySQL(选择一个你想要的版本)
开始,我默认安装了MySQL8,但是在测试的时候发现通过Hibernate连接之前的MySQL5.7的代码运行在连接新版本的库的时候发生异常,出于时间原因没有深度排查 但是我严重怀疑是版本匹配问题,为 ...
- httpd的rpm包及源码安装配置
httpd的rpm包及源码安装配置 1.rpm包安装 系统环境: [root@zhaochj ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel ...
- selenium设置chrome和phantomjs的请求头信息
selenium设置chrome和phantomjs的请求头信息 出于反爬虫也好-跳转到手机端页面也好都需要设置请求头,那么如何进行呢? 目录 一:selenium设置phantomjs请求头: ...
- 2018 icpc 青岛网络赛 J.Press the Button
Press the Button Time Limit: 1 Second Memory Limit: 131072 KB BaoBao and DreamGrid are playing ...