⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 play.asm

📁 本程序**%100汇编语言**编写。 编译器: <<-----MASM6.14----->> 编辑器: <<---EditPlus2.10c--->>(
💻 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 + -