右击工具箱->选择项(I)... -> 显示"选择工具箱项" -> COM组件 -> Windows Media Player   wmp.dll 添加

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

基本设置实例:

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

全屏控制实例代码:

  1. using System.IO;
  2. using WMPLib;
  3.  
  4. public videoPlay()
  5. {
  6. InitializeComponent();
  7.  
  8. //全屏设置及隐藏鼠标
  9. this.WindowState = FormWindowState.Maximized;
  10. this.FormBorderStyle = FormBorderStyle.None;
  11. //Cursor.Hide();
  12. //播放器全屏
  13. Rectangle screenSize = System.Windows.Forms.SystemInformation.VirtualScreen;//获取屏幕的宽和高
  14. this.panel1.Location = new System.Drawing.Point(0, 0);
  15. this.panel1.Size = new System.Drawing.Size(screenSize.Width,screenSize.Height);
  16. this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0);
  17. this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(screenSize.Width, screenSize.Height);
  18. //播放器设置
  19. axWindowsMediaPlayer1.uiMode = "None";//播放器样式
  20. axWindowsMediaPlayer1.stretchToFit = true;//非全屏状态时是否伸展到最佳大小
  21. axWindowsMediaPlayer1.enableContextMenu = false;//禁用播放器右键菜单
  22.  
  23. }
  24.  
  25. private IWMPPlaylist videoList;//创建播放列表
  26. private bool ifLoop = true;//视频是否循环
  27.  
  28. //设置是否循环播放
  29. public bool IfLoop
  30. {
  31. get { return ifLoop; }
  32. set { ifLoop = value; }
  33. }
  34.  
  35. //播放状态改变时发生
  36. private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e)
  37. {
  38. //判断视频是否已停止播放
  39. if ((int)axWindowsMediaPlayer1.playState == 1)
  40. {
  41. //停顿2秒钟再重新播放
  42. //System.Threading.Thread.Sleep(2000);
  43. //重新播放
  44. //axWindowsMediaPlayer1.Ctlcontrols.play();
  45. }
  46. }
  47. //播放
  48. public void videoStart()
  49. {
  50. axWindowsMediaPlayer1.Ctlcontrols.play();
  51. }
  52. //列表播放
  53. public void videoListStart()
  54. {
  55. videoPlayList();//重新获取播放列表
  56. axWindowsMediaPlayer1.Ctlcontrols.play();
  57. }
  58. //暂停
  59. public void videoPause()
  60. {
  61. axWindowsMediaPlayer1.Ctlcontrols.pause();
  62. }
  63. //重播
  64. public void videoReplay()
  65. {
  66. videoStop();
  67. videoStart();
  68. }
  69. //列表重播
  70. public void videoListReplay()
  71. {
  72. axWindowsMediaPlayer1.currentPlaylist = videoList;//重新载入播放列表
  73. videoStart();
  74. }
  75. //停止播放
  76. public void videoStop()
  77. {
  78. //axWindowsMediaPlayer1.currentPlaylist.clear();//清除列表
  79. axWindowsMediaPlayer1.Ctlcontrols.stop();
  80. }
  81. //视频静音
  82. public void videoMute(bool t)
  83. {
  84. axWindowsMediaPlayer1.settings.mute = t;
  85. }
  86. //播放下一个视频
  87. public void videoNext()
  88. {
  89. //判断当前所播放的视频是否是列表的最后一个
  90. if (axWindowsMediaPlayer1.currentMedia.name == axWindowsMediaPlayer1.currentPlaylist.Item[axWindowsMediaPlayer1.currentPlaylist.count - 1].name)
  91. {
  92. }
  93. else
  94. {
  95. axWindowsMediaPlayer1.Ctlcontrols.next();//播放下一个
  96. }
  97. }
  98. //播放上一个媒体
  99. public void videoPrevious()
  100. { //判断当前所播放的视频是否是列表的第一个
  101. if (axWindowsMediaPlayer1.currentMedia.name == axWindowsMediaPlayer1.currentPlaylist.Item[0].name)
  102. {
  103. }
  104. else
  105. {
  106. axWindowsMediaPlayer1.Ctlcontrols.previous();//播放上一个
  107. }
  108. }
  109.  
  110. //获取播放类表及初始化
  111. public void videoPlayList()
  112. {
  113. videoList = axWindowsMediaPlayer1.playlistCollection.newPlaylist("one");//创建播放列表
  114. string path = @".\data\video";//媒体路径
  115. DirectoryInfo dir = new DirectoryInfo(path);
  116. foreach (FileSystemInfo fsi in dir.GetFileSystemInfos())
  117. {
  118. if (fsi is FileInfo)
  119. {
  120. FileInfo fi = (FileInfo)fsi;
  121. videoList.appendItem(axWindowsMediaPlayer1.newMedia(fi.FullName));
  122. }
  123. }
  124. axWindowsMediaPlayer1.currentPlaylist = videoList;//查找到视频、播放类表
  125. axWindowsMediaPlayer1.settings.setMode("loop", ifLoop);//设置类表循环播放
  126. }

C#播放器控件的常用方法介绍的更多相关文章

  1. 使用VideoView自定义一个播放器控件

    介绍 最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了.在写VideoView播放视频时候定义控制的代码全写在Actv ...

  2. C# Winform开发程序调用VLC播放器控件播放视频.

    VLC是个好东西,支持的格式多,还无广告,关键还有调用它的播放控件不用安装. 开个文章记录下调用这个控件的流水账,以便以后需要的时候查阅 创建工程 首先新建一个Winform工程. 这里姑且叫做VLC ...

  3. Delphi 媒体播放器控件

    樊伟胜

  4. 发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >

    第一部分:FlowLayoutPanel控件 实现效果: 将FlowLayoutPanel做为导航菜单按钮的容器 以实现 某个菜单按钮不显示时 整体的导航菜单布局不至于"缺憾" 原 ...

  5. UWP 播放媒体控件

    最近我的uwp需要有一个有声朗读的功能,like this 点击声音按钮就可以有声朗读了.这里主要是用了媒体播放的控件. 一般我们把需求分为两种: 一种是不需要呈现播放器的样子,只需要用户点击一下别的 ...

  6. Winform中checklistbox控件的常用方法

    Winform中checklistbox控件的常用方法最近用到checklistbox控件,在使用其过程中,收集了其相关的代码段1.添加项checkedListBox1.Items.Add(" ...

  7. IOS的segmentedControl(分段器控件)的一些常用属性

    #pragma mark - 创建不同的分段器 //初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 UISegmentedControl *mysegmented = [[UI ...

  8. SWF加载器控件 SWFLoaderControl

    SWF加载器控件 书:165 <?xml version="1.0" encoding="utf-8"?> <s:Application xm ...

  9. NX二次开发-Block UI C++界面Face Collector(面收集器)控件的获取(持续补充 )

    Face Collector(面收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize() ...

随机推荐

  1. 一些常见http状态码

    # encoding=utf-8 #python 2.7.10 #xiaodeng #http状态码 #HTTP权威指南 10页 #一些常见状态码: 200 OK,文档正确返回 302 重定向,到其他 ...

  2. 在交叉编译中使用最新版的SS

    因为旧版本的ss-local总是出现 shake hands failed 错误, 打算用最新的版本试试, 所以尝试在编译中使用最新版的shadowsocks. 项目地址 Shadowsocks-li ...

  3. Falsk-信号

    Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为. 安装:pip3 install blinker request_started = _sign ...

  4. HDUOJ-------(1022)Train Problem I

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. linux下socket编程常用头文件

    sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数n ...

  6. android中ImageView的ScaleType属性

    android中ImageView的ScaleType属性 ScaleType的值分别代表的意义: ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该 ...

  7. android语音识别方法

    http://www.apkbus.com/forum.php?mod=viewthread&tid=3473 android语音识别方法一:使用intent调用语音识别程序 1. 说明 以下 ...

  8. http请求No peer certificate的解决方法

    不少同学在做HTTP请求新浪授权或新浪数据的时候会出现 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate的异常.现给出解决方法 ...

  9. Posix共享内存区

    1.概述 Posix提供了两种在无亲缘关系进程间共享内存区的方法: (1)内存映射文件:先有open函数打开,然后调用mmap函数把得到的描述符映射到当前进程地址空间中的一个文件(上一篇笔记所用到的就 ...

  10. 【转载】Gradle构建多模块项目

    本文转载自:https://yq.aliyun.com/articles/25589写的非常好! 改动如下: 1. 增加了一些[补充说明]. 2. 将执行命令使用较为显眼的博客园样式. 3. 将输出结 ...