- 3
- 0
- 约2.32万字
- 约 23页
- 2016-08-10 发布于广东
- 举报
无外部控件制作多媒体播放器
无外部控件制作多媒体播放器利用MCI指令制作播放器,简单实用,很适合于做为自己软件的一个附带功能或背景音乐,正是基于这点需求,我准备分几个部分来写:
1、MCI指令的简单使用;2、媒体播放的进度控制与音量调节;3、音乐信息的读取,包括MP3(ID3V1 ID3V2)与ASF(WMA WMV)等;4、音乐列表的建立与保存(M3U格式)
本来主要是想写播放音乐的,举个播放视频的例子,没什么别的意思,只是感觉播放音乐实在是简单,没什么可写,同时也是为了说明,MCI放视频也是可以的。
Private Const WS_CHILD = Private Declare Function mciSendString Lib winmm.dll Alias mciSendStringA (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As LongPrivate Declare Function GetShortPathName Lib kernel32 Alias GetShortPathNameA (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As LongPrivate Declare Function SetWindowPos Lib user32 (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPrivate Function ShortName(LName As String) As String??? 取得短文件名??? Dim s As String, i As Long??? i = 512??? s = Space$(i)??? GetShortPathName LName, s, i??? ShortName = Left$(s, InStr(1, s, vbNullChar) - 1)End Function
Private Function PlayMCI(Cmd As String, Optional ReturnStr As String) As Long??? 播放MCI??? Dim s As String??? s = Space$(256)??? PlayMCI = mciSendString(Cmd, s, 256, 0)??? ReturnStr = Left$(s, InStr(1, s, vbNullChar) - 1)End Function
Private Function ShowVideo(strFileName As String, hwd As Long, x As Long, y As Long, w As Long, h As Long) As Long??? Dim i As Long, s As String??? If Dir(strFileName, vbHidden Or vbReadOnly Or vbSystem) = vbNullString Or strFileName = vbNullString Then Exit Function??? i = PlayMCI(open ShortName(strFileName) alias Song parent hwd style WS_CHILD WAIT)??? If i 0 Then Exit Function??? i = PlayMCI(STATUS Song WINDOW HANDLE WAIT, s)??? If i 0 Then GoTo fail??? i = Val(s)??? If i = 0 Then GoTo fail??? SetWindowPos i, 0, x, y, w, h, 0??? PlayMCI play Song??? ShowVideo = i?? 若成功返回视频窗口的句柄??? Exit Functionfail:??? PlayMCI close SongEnd Function
P
原创力文档

文档评论(0)