C#播放器控件的常用方法介绍
右击工具箱->选择项(I)... -> 显示"选择工具箱项" -> COM组件 -> Windows Media Player wmp.dll 添加

- [基本属性]
- URL:String; 指定媒体位置,本机或网络地址
- uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible(不计大小写)
- playState:integer; 播放状态。这个属性改变时同时引发PlayStateChange事件与StateChange事件。取值范围为枚举型:WMPLib.WMPPlayState,它的成员如下:
- wmppsUndefined = 0; //未知状态
- wmppsStopped = 1; //播放停止
- wmppsPaused = 2; //播放暂停
- wmppsPlaying = 3; //正在播放
- wmppsScanForward = 4; //向前搜索
- wmppsScanReverse = 5; //向后搜索
- wmppsBuffering = 6; //正在缓冲
- wmppsWaiting = 7; //正在等待流开始
- wmppsMediaEnded = 8; //播放流已结束
- wmppsTransitioning = 9; //准备新的媒体文件
- wmppsReady = 10; //播放准备就绪
- wmppsReconnecting = 11; //尝试重新连接流媒体数据
- wmppsLast = 12; //上一次状态,状态没有改变
- 在PlayStateChange中写代码可以防止播放rmvb等非默认类型的问题(用wmppsReady)。
- enableContextMenu:Boolean; 启用/禁用右键菜单
- fullScreen:boolean; 是否全屏显示
- //播放器基本控制
- Ctlcontrols.play; 播放
- Ctlcontrols.pause; 暂停
- Ctlcontrols.stop; 停止
- Ctlcontrols.currentPosition:double; 当前进度
- Ctlcontrols.currentPositionString:string; 当前进度,字符串格式。如“00:23”
- Ctlcontrols.fastForward; 快进
- Ctlcontrols.fastReverse; 快退
- Ctlcontrols.next; 下一曲
- Ctlcontrols.previous; 上一曲
- [settings] wmp.settings //播放器基本设置
- settings.volume:integer; 音量,0-100
- settings.autoStart:Boolean; 是否自动播放
- settings.mute:Boolean; 是否静音
- settings.playCount:integer; 播放次数
- //顺序播放
- wmp.settings.setMode("shuffle", False)
- //随机播放
- wmp.settings.setMode("shuffle", True)
- //循环播放
- wmp.settings.setMode("loop", True)
- [currentMedia] wmp.currentMedia //当前媒体属性
- currentMedia.duration:double; 媒体总长度
- currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
- currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述, "Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
- currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
- currentMedia.name:string; 同 currentMedia.getItemInfo("Title")

基本设置实例:

- axWindowsMediaPlayer1.windowlessVideo = false; //设为false后双击屏幕可以全屏
- axWindowsMediaPlayer1.fullScreen = true; //设播放器全屏播放
- axWindowsMediaPlayer1.URL = @"mms://192.168.0.102/vod/jingwei.wma";//播放资源
- axWindowsMediaPlayer1.Ctlcontrols.play(); //播放
- axWindowsMediaPlayer1.Ctlcontrols.stop(); //停止
- axWindowsMediaPlayer1.Ctlcontrols.pause(); //暂停
- axWindowsMediaPlayer1.settings.autoStart = true; //自动播放
- axWindowsMediaPlayer1.settings.mute = false; //静音
- axWindowsMediaPlayer1.settings.volume = 100; // 音量 int 0 ~ 100 100 是最大音量
- axWindowsMediaPlayer1.currentMedia.duration.ToString();//影片长度
- axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 30; //当前的播放位置 double
- axWindowsMediaPlayer1.currentMedia.getItemInfo("Title");//标题
- axWindowsMediaPlayer1.currentMedia.getItemInfo("Author");//作者

全屏控制实例代码:

- using System.IO;
- using WMPLib;
- public videoPlay()
- {
- InitializeComponent();
- //全屏设置及隐藏鼠标
- this.WindowState = FormWindowState.Maximized;
- this.FormBorderStyle = FormBorderStyle.None;
- //Cursor.Hide();
- //播放器全屏
- Rectangle screenSize = System.Windows.Forms.SystemInformation.VirtualScreen;//获取屏幕的宽和高
- this.panel1.Location = new System.Drawing.Point(0, 0);
- this.panel1.Size = new System.Drawing.Size(screenSize.Width,screenSize.Height);
- this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0);
- this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(screenSize.Width, screenSize.Height);
- //播放器设置
- axWindowsMediaPlayer1.uiMode = "None";//播放器样式
- axWindowsMediaPlayer1.stretchToFit = true;//非全屏状态时是否伸展到最佳大小
- axWindowsMediaPlayer1.enableContextMenu = false;//禁用播放器右键菜单
- }
- private IWMPPlaylist videoList;//创建播放列表
- private bool ifLoop = true;//视频是否循环
- //设置是否循环播放
- public bool IfLoop
- {
- get { return ifLoop; }
- set { ifLoop = value; }
- }
- //播放状态改变时发生
- private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e)
- {
- //判断视频是否已停止播放
- if ((int)axWindowsMediaPlayer1.playState == 1)
- {
- //停顿2秒钟再重新播放
- //System.Threading.Thread.Sleep(2000);
- //重新播放
- //axWindowsMediaPlayer1.Ctlcontrols.play();
- }
- }
- //播放
- public void videoStart()
- {
- axWindowsMediaPlayer1.Ctlcontrols.play();
- }
- //列表播放
- public void videoListStart()
- {
- videoPlayList();//重新获取播放列表
- axWindowsMediaPlayer1.Ctlcontrols.play();
- }
- //暂停
- public void videoPause()
- {
- axWindowsMediaPlayer1.Ctlcontrols.pause();
- }
- //重播
- public void videoReplay()
- {
- videoStop();
- videoStart();
- }
- //列表重播
- public void videoListReplay()
- {
- axWindowsMediaPlayer1.currentPlaylist = videoList;//重新载入播放列表
- videoStart();
- }
- //停止播放
- public void videoStop()
- {
- //axWindowsMediaPlayer1.currentPlaylist.clear();//清除列表
- axWindowsMediaPlayer1.Ctlcontrols.stop();
- }
- //视频静音
- public void videoMute(bool t)
- {
- axWindowsMediaPlayer1.settings.mute = t;
- }
- //播放下一个视频
- public void videoNext()
- {
- //判断当前所播放的视频是否是列表的最后一个
- if (axWindowsMediaPlayer1.currentMedia.name == axWindowsMediaPlayer1.currentPlaylist.Item[axWindowsMediaPlayer1.currentPlaylist.count - 1].name)
- {
- }
- else
- {
- axWindowsMediaPlayer1.Ctlcontrols.next();//播放下一个
- }
- }
- //播放上一个媒体
- public void videoPrevious()
- { //判断当前所播放的视频是否是列表的第一个
- if (axWindowsMediaPlayer1.currentMedia.name == axWindowsMediaPlayer1.currentPlaylist.Item[0].name)
- {
- }
- else
- {
- axWindowsMediaPlayer1.Ctlcontrols.previous();//播放上一个
- }
- }
- //获取播放类表及初始化
- public void videoPlayList()
- {
- videoList = axWindowsMediaPlayer1.playlistCollection.newPlaylist("one");//创建播放列表
- string path = @".\data\video";//媒体路径
- DirectoryInfo dir = new DirectoryInfo(path);
- foreach (FileSystemInfo fsi in dir.GetFileSystemInfos())
- {
- if (fsi is FileInfo)
- {
- FileInfo fi = (FileInfo)fsi;
- videoList.appendItem(axWindowsMediaPlayer1.newMedia(fi.FullName));
- }
- }
- axWindowsMediaPlayer1.currentPlaylist = videoList;//查找到视频、播放类表
- axWindowsMediaPlayer1.settings.setMode("loop", ifLoop);//设置类表循环播放
- }

C#播放器控件的常用方法介绍的更多相关文章
- 使用VideoView自定义一个播放器控件
介绍 最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了.在写VideoView播放视频时候定义控制的代码全写在Actv ...
- C# Winform开发程序调用VLC播放器控件播放视频.
VLC是个好东西,支持的格式多,还无广告,关键还有调用它的播放控件不用安装. 开个文章记录下调用这个控件的流水账,以便以后需要的时候查阅 创建工程 首先新建一个Winform工程. 这里姑且叫做VLC ...
- Delphi 媒体播放器控件
樊伟胜
- 发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >
第一部分:FlowLayoutPanel控件 实现效果: 将FlowLayoutPanel做为导航菜单按钮的容器 以实现 某个菜单按钮不显示时 整体的导航菜单布局不至于"缺憾" 原 ...
- UWP 播放媒体控件
最近我的uwp需要有一个有声朗读的功能,like this 点击声音按钮就可以有声朗读了.这里主要是用了媒体播放的控件. 一般我们把需求分为两种: 一种是不需要呈现播放器的样子,只需要用户点击一下别的 ...
- Winform中checklistbox控件的常用方法
Winform中checklistbox控件的常用方法最近用到checklistbox控件,在使用其过程中,收集了其相关的代码段1.添加项checkedListBox1.Items.Add(" ...
- IOS的segmentedControl(分段器控件)的一些常用属性
#pragma mark - 创建不同的分段器 //初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 UISegmentedControl *mysegmented = [[UI ...
- SWF加载器控件 SWFLoaderControl
SWF加载器控件 书:165 <?xml version="1.0" encoding="utf-8"?> <s:Application xm ...
- NX二次开发-Block UI C++界面Face Collector(面收集器)控件的获取(持续补充 )
Face Collector(面收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize() ...
随机推荐
- 一些常见http状态码
# encoding=utf-8 #python 2.7.10 #xiaodeng #http状态码 #HTTP权威指南 10页 #一些常见状态码: 200 OK,文档正确返回 302 重定向,到其他 ...
- 在交叉编译中使用最新版的SS
因为旧版本的ss-local总是出现 shake hands failed 错误, 打算用最新的版本试试, 所以尝试在编译中使用最新版的shadowsocks. 项目地址 Shadowsocks-li ...
- Falsk-信号
Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为. 安装:pip3 install blinker request_started = _sign ...
- HDUOJ-------(1022)Train Problem I
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- linux下socket编程常用头文件
sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数n ...
- android中ImageView的ScaleType属性
android中ImageView的ScaleType属性 ScaleType的值分别代表的意义: ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该 ...
- android语音识别方法
http://www.apkbus.com/forum.php?mod=viewthread&tid=3473 android语音识别方法一:使用intent调用语音识别程序 1. 说明 以下 ...
- http请求No peer certificate的解决方法
不少同学在做HTTP请求新浪授权或新浪数据的时候会出现 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate的异常.现给出解决方法 ...
- Posix共享内存区
1.概述 Posix提供了两种在无亲缘关系进程间共享内存区的方法: (1)内存映射文件:先有open函数打开,然后调用mmap函数把得到的描述符映射到当前进程地址空间中的一个文件(上一篇笔记所用到的就 ...
- 【转载】Gradle构建多模块项目
本文转载自:https://yq.aliyun.com/articles/25589写的非常好! 改动如下: 1. 增加了一些[补充说明]. 2. 将执行命令使用较为显眼的博客园样式. 3. 将输出结 ...