c#沒有提供用於播放音頻的類可以直接使用,需要播放音樂或視頻文件時候,我們可以使用第三方多媒體庫或是第三方控件輔助播放,找來找去還是覺得用Windows Media Player控件來編寫比較方便,下面說一下用法
在VS工具欄中,默認情況下是找不到Windows Media Player 控件的,使用windows media player 控件需要使用到兩個庫
AxInterop.WMPLib.dll 和 Interop.WMPLib.dll
最開始這兩個庫找了好久,有時候會發現版本不匹配不能用,后來發現,直接在工具欄添加控件,拖到窗口中,就會自動把這兩個庫復制到Debug文件夾中
從這里開始吧
1、在工具欄中,右鍵-選擇項,選擇COM組建,然后把Windows Media Player打鈎,這樣就添加進來了,然后拖到Form窗體中
2、這個Windows Media Player控件有點丑,我們可以刪掉,在后台代碼中創建,我們只是要使用這個控件來播放而已。下面是屬性
播放,暫停,停止操作
this.axWindowsMediaPlayer1.URL = @"G:\Music\some one like you.mp3"; this.axWindowsMediaPlayer1.Ctlcontrols.play(); this.axWindowsMediaPlayer1.Ctlcontrols.pause(); this.axWindowsMediaPlayer1.Ctlcontrols.stop();
詳細屬性:
[基本屬性]
URL:String; 指定媒體位置,本機或網絡地址
uiMode:String; 播放器界面模式,可為Full, Mini, None, Invisible
playState:integer; 播放狀態,1=停止,2=暫停,3=播放,6=正在緩沖,9=正在連接,10=准備就緒
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; 上一曲
Ctlcontrols.PlayCount 文件播放次數
Ctlcontrols.AutoRewind 是否循環播放
Ctlcontrols.Balance 聲道
Ctlcontrols.Volume 音量
Ctlcontrols.Mute 靜音
Ctlcontrols.EnableContextMenu 是否允許在控件上點擊鼠標右鍵時彈出快捷菜單
Ctlcontrols.AnimationAtStart 是否在播放前先播放動畫
Ctlcontrols.ShowControls 是否顯示控件工具欄
Ctlcontrols.ShowAudioControls 是否顯示聲音控制按鈕
Ctlcontrols.ShowDisplay 是否顯示數據文件的相關信息
Ctlcontrols.ShowGotoBar 是否顯示Goto欄
Ctlcontrols.ShowPositionControls 是否顯示位置調節按鈕
Ctlcontrols.ShowStatusBar 是否顯示狀態欄
Ctlcontrols.ShowTracker 是否顯示進度條
Ctlcontrols.Rate 快進/快退速率
//播放器基本設置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自動播放
settings.mute:Boolean; 是否靜音
settings.playCount:integer; 播放次數
//當前媒體屬性
currentMedia.sourceURL; 獲取正在播放的媒體文件的路徑
currentMedia.name; 獲取正在播放的媒體文件的名稱
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.count:integer; 當前播放列表所包含媒體數
currentPlaylist.Item[integer]; 獲取或設置指定項目媒體信息,其子屬性同wmp.currentMedia
取得一個Media對象
string filePath = "G:\Music\不知不覺-小賤.mp3"; WMPLib.IWMPMedia media = axWindowsMediaPlayer1.newMedia(filePath);