Windows Media Player控件属性及方法(c#)
发布日期:2022-02-26 00:17:47 浏览次数:9 分类:技术文章

本文共 6514 字,大约阅读时间需要 21 分钟。

最近在做KTV,很多同学用到了播放器的控件。用系统自带的Windows Modia Play,其实功能也很强大,以下,找了一些资料,希望对大家有帮助。预祝大家做出优秀的KTV系统!

属性/方法名说明:

详尽的API文档(MSDN更透彻)
[
基本属性]  
;
指定媒体位置,本机或网络地址
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")

[currentPlaylist] wmp.currentPlaylist //当前播放列表属性

currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer];
获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
axWindowsMediaPlayer1.currentMedia.sourceURL; //
获取正在播放的媒体文件的路径
axWindowsMediaPlayer1.currentMedia.name;          //
获取正在播放的媒体文件的名称
axWindowsMediaPlayer1.Ctlcontrols.Play
          播放  
axWindowsMediaPlayer1.Ctlcontrols.Stop
          停止  
axWindowsMediaPlayer1.Ctlcontrols.Pause
         暂停  
axWindowsMediaPlayer1.Ctlcontrols.PlayCount
         文件播放次数  
axWindowsMediaPlayer1.Ctlcontrols.AutoRewind
       是否循环播放 (无效)
axWindowsMediaPlayer1.Ctlcontrols.Balance
          声道  
axWindowsMediaPlayer1.Ctlcontrols.Volume
         音量  
axWindowsMediaPlayer1.Ctlcontrols.Mute
          静音  
axWindowsMediaPlayer1.EnableContextMenu
     是否允许在控件上点击鼠标右键时弹出快捷菜单  
axWindowsMediaPlayer1.Ctlcontrols.AnimationAtStart
       是否在播放前先播放动画(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowControls
      是否显示控件工具栏(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowAudioControls
       是否显示声音控制按钮(无效
axWindowsMediaPlayer1.Ctlcontrols.ShowDisplay
         是否显示数据文件的相关信息(无效
axWindowsMediaPlayer1.Ctlcontrols.ShowGotoBar
        是否显示Goto(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowPositionControls
       是否显示位置调节按钮(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowStatusBar
      是否显示状态栏(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowTracker
       是否显示进度条(无效)
axWindowsMediaPlayer1.Ctlcontrols.FastForward
       快进  
axWindowsMediaPlayer1.Ctlcontrols.FastReverse
       快退  
axWindowsMediaPlayer1.Ctlcontrols.Rate
            快进/快退速率  
axWindowsMediaPlayer1.AllowChangeDisplaySize
   是否允许自由设置播放图象大小(无效)
axWindowsMediaPlayer1.DisplaySize
       设置播放图象大小(无效)
1-MpDefaultSize
         原始大小  
2-MpHalfSize
          原始大小的一半  
3-MpDoubleSize
         原始大小的两倍  
4-MpFullScreen
         全屏  
5-MpOneSixteenthScreen
     屏幕大小的1/16  
6-MpOneFourthScreen
        屏幕大小的1/4  
7-MpOneHalfScreen
          屏幕大小的1/2  
axWindowsMediaPlayer1.ClickToPlay
    是否允许单击播放窗口启动Media Player 

在视频播放之后,可以通过如下方式读取源视频的宽度和高度,然后设置其还原为原始的大小.

         private void ResizeOriginal()
         {
             int intWidth = axWindowsMediaPlayer1.currentMedia.imageSourceWidth;
             int intHeight = axWindowsMediaPlayer1.currentMedia.imageSourceHeight;
             axWindowsMediaPlayer1.Width = intWidth + 2;
             axWindowsMediaPlayer1.Height = intHeight + 2;
         }

打开媒体文件并播放:

         Dim filePath As String
         With Me.OpenFileDialog1
             .Title = "
打开语音文件
"
             .CheckPathExists = True
             .CheckFileExists = True
             .Multiselect = False
             .Filter = "mp3
文件
(*.mp3)|*.mp3|
所有文件
(*.*)|*.*"
             If .ShowDialog = DialogResult.Cancel Then
                 Exit Sub
             End If
             filePath = .FileName
         End With
         Me.Text = "PC
复读机
-
文件
" & filePath
         AxWindowsMediaPlayer1.URL = filePath
         Try
             Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
         Catch ex As Exception
             MsgBox("
对不起,不能播放此格式语音文件
", MsgBoxStyle.OKOnly, "PC
复读机
")
             Exit Sub
        End Try
注意
:
AxWindowsMediaPlayer1.URL
URL
是表示要播放的文件名
,
取消了原来的
Name
属性
.
AxWindowsMediaPlayer1.Ctlcontrols.play()
播放
,
同样还有
Pause,Stop
等其他属性
.
AxWindowsMediaPlayer1.settings.balance
表示媒体播放的声道设置
,0
表示均衡
,-1
1
表示左右声道
.
AxWindowsMediaPlayer1.currentMedia.duration
表示要播放的文件的时间长度
.
可用它获取文件长度
.
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
表示正在播放的文件的当前播放位置
,
可用这个属性来对媒体文件进行前进后退等设置
.
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition+1
表示前进
1
个时间单位
.
AxWindowsMediaPlayer1.settings.rate
播放速率
,
一般乘以
16
后再显示
kbps
单位
.
注意
:
在上面程序中
,
如果在后面加上一个:
msgbox(AxWindowsMediaPlayer1.currentMedia.duration.ToString )
则显示结果很可能为
0
,因此,这时候很可能获取不到文件的播放时间长度,容易出错。所以在利用的时候可以加一个
timer
控件:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
         EndPoint = AxWindowsMediaPlayer1.currentMedia.duration
         If EndPoint = 0 Then Exit Sub '
可能因为媒体文件的打开需要一定时间,这里等待媒体文件的打开
         msgbox(AxWindowsMediaPlayer1.currentMedia.duration.ToString )
End Sub
此时
msgbox
便会显示文件播放长度。
2. Ctlcontrols
属性
Ctlcontrols
属性是
AxWindowsMediaPlayer
的一个重要属性,
此控件中有许多常用成员。
(1)
方法
play
用于播放多媒体文件,其格式为:
窗体名
.
控件名
.Ctlcontrols.play()
如:
AxWindowsMediaPlayer1.Ctlcontrols.play()  ‘
此处缺省窗体名是
Me
(2)
方法
pause
用于暂停正在播放的多媒体文件,其格式为:
窗体名
.
控件名
.Ctlcontrols.pause()
如:
AxWindowsMediaPlayer1.Ctlcontrols.pause()
(3)
方法
stop
用于停止正在播放的多媒体文件,其格式为:
窗体名
.
控件名
.Ctlcontrols.stop()
如:
AxWindowsMediaPlayer1.Ctlcontrols.stop()
(4)
方法
fastforward
用于将正在播放的多媒体文件快进,其格式为:
窗体名
.
控件名
.Ctlcontrols.fastforward()
如:
AxWindowsMediaPlayer1.Ctlcontrols.forward()
(5)
方法
fastreverse
窗体名
.
控件名
.Ctlcontrols.fastreverse()
如:
AxWindowsMediaPlayer1.Ctlcontrols.fastreverse()
6.
属性
CurrentPosition
用于获取多媒体文件当前的播放进度,其值是数值类型,使用格式为:
窗体名
.
控件名
.Ctlcontrols.currentPosition
d1 =AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
其中
d1
是一个整型变量。
7.
属性
Duration
用于获取当前多媒体文件的播放的总时间,其值为数值类型,其使用格式为:
窗体名
.
控件名
.currentMedia.duration
如:
d2 =AxWindowsMediaPlayer1.currentMedia.duration
其中
d2
是一个整型变量。

转载地址:https://blog.csdn.net/tml237615629/article/details/7493568 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SQL索引优化
下一篇:关于SqlDataAdapter的Update()方法的原理[转]

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月22日 17时39分16秒