资源描述:
《无外部控件制作多媒体播放器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、无外部控件制作多媒体播放器利用MCI指令制作播放器,简单实用,很适合于做为自己软件的一个附带功能或背景音乐,正是基于这点需求,我准备分几个部分来写:1、MCI指令的简单使用;2、媒体播放的进度控制与音量调节;3、音乐信息的读取,包括MP3(ID3V1&ID3V2)与ASF(WMA&WMV)等;4、音乐列表的建立与保存(M3U格式)本来主要是想写播放音乐的,举个播放视频的例子,没什么别的意思,只是感觉播放音乐实在是简单,没什么可写,同时也是为了说明,MCI放视频也是可以的。PrivateConstWS_CHILD=&H400000
2、00PrivateDeclareFunctionmciSendStringLib"winmm.dll"Alias"mciSendStringA"(ByVallpstrCommandAsString,ByVallpstrReturnStringAsString,ByValuReturnLengthAsLong,ByValhwndCallbackAsLong)AsLongPrivateDeclareFunctionGetShortPathNameLib"kernel32"Alias"GetShortPathNameA"(ByVall
3、pszLongPathAsString,ByVallpszShortPathAsString,ByValcchBufferAsLong)AsLongPrivateDeclareFunctionSetWindowPosLib"user32"(ByValhWndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLongPrivateFunctionShortName(L
4、NameAsString)AsString '取得短文件名 DimsAsString,iAsLong i=512 s=Space$(i) GetShortPathNameLName,s,i ShortName=Left$(s,InStr(1,s,vbNullChar)-1)EndFunctionPrivateFunctionPlayMCI(CmdAsString,OptionalReturnStrAsString)AsLong '播放MCI DimsAsString s=Space$(256)
5、 PlayMCI=mciSendString(Cmd,s,256,0) ReturnStr=Left$(s,InStr(1,s,vbNullChar)-1)EndFunctionPrivateFunctionShowVideo(strFileNameAsString,hwdAsLong,xAsLong,yAsLong,wAsLong,hAsLong)AsLong DimiAsLong,sAsString IfDir(strFileName,vbHiddenOrvbReadOnlyOrvbSystem)=vbNul
6、lStringOrstrFileName=vbNullStringThenExitFunction i=PlayMCI("open"""&ShortName(strFileName)&"""aliasSongparent"&hwd&"style"&WS_CHILD&"WAIT") Ifi<>0ThenExitFunction i=PlayMCI("STATUSSongWINDOWHANDLEWAIT",s) Ifi<>0ThenGoTofail i=Val(s) Ifi=0ThenGoTofail S
7、etWindowPosi,0,x,y,w,h,0 PlayMCI"playSong" ShowVideo=i '若成功返回视频窗口的句柄 ExitFunctionfail: PlayMCI"closeSong"EndFunctionPrivateSubcmdPlay_Click() i=ShowVideo("h:1.wmv",Me.hWnd,0,0,100,100) '返回的这个句柄,很有用的,可用于移动窗口位置,或SubClass它,加上弹出菜单,响应鼠标动作等 If i<>0Then
8、 cmdPlay.Enabled=False cmdStop.Enabled=True EndIfEndSubPrivateSubcmdStop_Click() PlayMCI"closeSong" cmdPlay.Enabled=Tru