2015年6月2日 星期二

[Microsoft Visual Basic 2010 Express]背景音樂

開發環境:Microsoft Visual Basic 2010 Express
原理  :利用Windows Media Player的dll檔(wmp.dll),讓在VB2010可以使Windows
                    Media Player的功能。


Imports WMPLib

Public Class Form1

    Public wmp As New WindowsMediaPlayer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        wmp.URL = System.Windows.Forms.Application.StartupPath & "\Angel Beats!PV6使用曲 ロック風アレンジ Reloaded.mp3"

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        wmp.close()

    End Sub

End Class



windows media player 控件的常用屬性及方法
屬性/方法 說明
URL:String; 
指定媒體位置,本機或網絡地址
uiMode:String; 
播放器界面模式,可為Full, Mini, None, Invisible
playState:integer; 
播放狀態,1=停止,2=暫停,3=播放,6=正在緩衝,9=正在連接,10= 準備就緒
enableContextMenu:Boolean; 
啟用/禁用右鍵菜單
fullScreen:boolean; 
是否全屏顯示
[Ctlcontrols] wmp.controls 
播放器基本控製
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; 
播放次數
[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再使用currentMedia.duration

特別要注意 Player 需要Ctlcontrols.play()
才能取值
特別注意的是player可能檔案載入或是串流載入
可能未準備好而造成取得的值是0
我的解決方式是透過timer在一定時間(interval=3000)後再取值

沒有留言:

張貼留言