📄 play.asm
字号:
;**************mp3 play functions**************
;>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<
_GetFileName proc hWnd:dword
mov ofn.lStructSize,sizeof ofn
push hWnd
pop ofn.hWndOwner
push hInstance
pop ofn.hInstance
mov ofn.lpstrFilter,offset FilterString
mov ofn.lpstrFile,offset Buffer
mov ofn.nMaxFileTitle,MAXSIZE
mov ofn.lpstrTitle,offset FileTitle
mov ofn.lpstrInitialDir,offset InitialDir
mov ofn.nMaxFile,MAXSIZE
MOV ofn.Flags,OFN_FILEMUSTEXIST OR OFN_PATHMUSTEXIST\
OR OFN_LONGNAMES OR OFN_EXPLORER OR OFN_HIDEREADONLY
invoke GetOpenFileName,addr ofn
.if eax==FALSE
RET
.ENDIF
ret
_GetFileName endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_OpenMp3 proc lpszbuffer:dword
local stMciOpen:MCI_OPEN_PARMS
MOV stMciOpen.lpstrDeviceType,offset DeviceType
mov eax,lpszbuffer
mov stMciOpen.lpstrElementName, eax
invoke mciSendCommand,0,MCI_OPEN,MCI_OPEN_TYPE\
OR MCI_OPEN_ELEMENT,ADDR stMciOpen
mov eax,stMciOpen.wDeviceID
mov hDevice,eax
ret
_OpenMp3 endp
;**********************************************
_PlayMp3 proc
LOCAL stMciPlay:MCI_PLAY_PARMS
mov eax,hWinMain
mov stMciPlay.dwCallback,eax
invoke mciSendCommand,hDevice,MCI_PLAY,\
MCI_NOTIFY,ADDR stMciPlay
.if eax==0
invoke SetDlgItemText,hWinMain,IDC_PLAY,\
OFFSET PauseString
mov dwFlag,1
.else
invoke MessageBox,hWinMain,addr ErrString,addr AppName,\
MB_OK OR MB_ICONINFORMATION
.ENDIF
ret
_PlayMp3 endp
;*********************************************
_PauseMp3 proc
local stMciPause:MCI_GENERIC_PARMS
mov eax,hWinMain
mov stMciPause.dwCallback,eax
invoke mciSendCommand,hDevice,MCI_PAUSE,MCI_WAIT,\
ADDR stMciPause
invoke SetDlgItemText,hWinMain,IDC_PLAY,OFFSET PlayString
mov dwFlag,0
ret
_PauseMp3 endp
;**********************************************
_StopPlayMp3 proc
local stMciStop:MCI_GENERIC_PARMS
MOV eax,hWinMain
mov stMciStop.dwCallback,eax
invoke mciSendCommand,hDevice,MCI_STOP,MCI_WAIT,\
ADDR stMciStop
invoke mciSendCommand,hDevice,MCI_CLOSE,MCI_WAIT,\
ADDR stMciStop
invoke SetDlgItemText,hWinMain,IDC_PLAY,\
OFFSET PlayString
mov dwFlag,0
ret
_StopPlayMp3 endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PlayMp3Files proc
invoke SetDlgItemText,hWinMain,IDC_EDIT,NULL
mov ecx,CurrentPlay
mov eax,PlayList[ecx*4]
push ecx
push eax
invoke SetDlgItemText,hWinMain,IDC_EDIT,Eax
pop eax
invoke _OpenMp3,eax
invoke _PlayMp3
pop ecx
inc ecx
.if ecx==iIndex
mov ecx,0
.endif
mov CurrentPlay,ecx
ret
PlayMp3Files endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -