DECLARE FUNCTION PlayAvi LIB "winmm.dll" ALIAS "mciSendStringA" _
(BYVAL lpstrCommand AS STRING, lpstrReturnString AS LONG, uReturnLength AS _
LONG, hwndCallback AS LONG) AS LONG
DECLARE FUNCTION GetShortPathName LIB "kernel32" ALIAS "GetShortPathNameA" (BYVAL lpszLongPath AS STRING, BYVAL lpszShortPath AS LONG, BYVAL lBuffer AS LONG) AS LONG
DECLARE SUB aTextAgain
DECLARE SUB StopAudio
DECLARE SUB AudioVideo
DECLARE SUB CloseAudio
DECLARE SUB InitAudio
DECLARE SUB CloseAudioform
DECLARE SUB Check(hand AS LONG, message AS LONG, one AS LONG, two AS LONG)
DECLARE SUB Listening(Sender AS QCOOLBTN)
DIM OpenDialog AS QOPENDIALOG
DIM vFileName AS STRING
DIM aFileName AS STRING
DIM RetVideo AS STRING*256
DEFINT oTop, oHeight, oWidth, oLeft
DEFSTR audio$
DEFBYTE loops
CREATE Audio AS QFORM
Width = 340
Height = 205
COLOR = &HFFFFFF
AutoScroll = 0
Center
CAPTION = "Jojo"
OnPaint = aTextAgain
WndProc = Check
CREATE AudSlide AS QTRACKBAR
Top = 5
Left = 1
Height = 30
Width = 280
END CREATE
CREATE AudS AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Skip"
Top = 32
Left = 125
Width = 45
Hint = "Stop play and rewind"
ShowHint = 1
OnClick = StopAudio
END CREATE
CREATE AudSnd AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Audio"
Top = 2
Left = 285
Width = 45
Hint = "Turn audio on or off"
ShowHint = 1
OnClick = AudioVideo
END CREATE
CREATE AudO AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Open"
Top = 32
Left = 285
Width = 45
Hint = "Select audio or video file"
ShowHint = 1
OnClick = Listening
END CREATE
CREATE AudA AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Play"
Top = 62
Left = 285
Width = 45
Hint = "Play selected file"
ShowHint = 1
OnClick = Listening
END CREATE
CREATE AudB AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Pause"
Top = 92
Left = 285
Width = 45
Hint = "Pause or resume current file"
ShowHint = 1
OnClick = Listening
END CREATE
CREATE AudL AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Loop"
Top = 122
Left = 285
Width = 45
Hint = "Play file continuously"
ShowHint = 1
OnClick = Listening
END CREATE
CREATE AudC AS QCOOLBTN
Flat = 1
Font.Bold = 1
CAPTION = "Close"
Top = 152
Left = 285
Width = 45
Hint = "Close current file"
ShowHint = 1
OnClick = CloseAudio
END CREATE
END CREATE
audio$ = "on"
Audio.SHOWMODAL
SUB AudioVideo
IF audio$ = "off" THEN
audio$ = "on"
AudSnd.Font.Bold = 1
ELSEIF audio$ = "on" OR audio$ = "" THEN
audio$ = "off"
AudSnd.Font.Bold = 0
END IF
END SUB
SUB AudioView
Audio.Visible = 1
Audio.TextOut(106,80," LOAD A FILE...",0,&HFFFFFF)
END SUB
SUB Listening
DIM RetLength AS STRING*256
DIM RetAudio AS STRING*256
DIM RetSlide AS STRING*256
DIM sReturn AS STRING*256
SELECT CASE Sender.Handle
CASE AudO.Handle
oHeight = Audio.Height
oWidth = Audio.Width
oTop = Audio.Top
oLeft = Audio.Left
OpenDialog.Filter = "Multimedia files|*.rmi;*.midi;*.mid;*.wav;*.au;*.snd;*.mpa;*.wma;_
*.mp2;*.mp3;*.aif;*.iff;*.mpm;*.m1v;*.mpeg;*.mpg;*.mpe;*.avi;*.mov;*.wmv;*.mpv;*.qt;*.dat;_
*.bmp;*.jpg|Audio files|*.rmi;*.midi;*.mid;*.wav;*.au;*.snd;*.mpa;*.wma;_
*.mp2;*.mp3;*.aif;*.iff|MP3|*.mp3|MIDI|*.midi;*.mid|WAV|*.wav|_
Video files|*.mpm;*.m1v;*.mpeg;*.mpg;*.mpe;*.avi;*.mov;*.wmv;*.mpv;*.qt;*.dat|_
MPEG video|*.mpeg;*.mpe;*.mpg|AVI video|*.avi|QuickTime|*.mov;*.qt|_
Image files|*.bmp;*.jpg|All files|*.*"
IF OpenDialog.EXECUTE THEN
DIM lngRes AS LONG
strPath$ = STRING$(165, 0)
lngRes = GetShortPathName(OpenDialog.FileName, VARPTR(strPath$), 164)
aFileName = LEFT$(strPath$, lngRes)
Audio.Repaint
aTextAgain
Audio.Repaint
Audio.TextOut(65,80,"CLICK PLAY or LOAD ANOTHER...",0,&HFFFFFF)
END IF
CASE AudA.Handle
IF AudB.CAPTION = "Resume" OR aFileName = "" THEN EXIT SUB
Audio.Repaint
aTextAgain
Audio.Repaint
Audio.TextOut(105,80," LOADING FILE... ",0,&HFFFFFF)
end$ = RIGHT$(LCASE$(aFileName),3)
DO
SELECT CASE end$
CASE "mpm","m1v",".qt","mpg","mpe","peg","avi","mov","wmv","mpv","dat","bmp","jpg"
PlayAvi("open " + aFileName + " type MpegVideo" + " parent " + STR$(Audio.Handle) + " style child",0,0,0)
PlayAvi("Where " + aFileName + " destination", VARPTR(sReturn), LEN(sReturn) - 1, 0)
lStart = INSTR(1, sReturn, " ")
lPos = INSTR(lStart + 1, sReturn, " ")
lStart = INSTR(lPos + 1, sReturn, " ")
Width$ = MID$(sReturn, lPos, lStart - lPos)
Height$ = MID$(sReturn, lStart + 1)
IF Audio.Height < (VAL(Height$) + 100) THEN
Audio.Height = VAL(Height$) + 110
END IF
IF Audio.Width < (VAL(Width$) + 80) THEN
Audio.Width = VAL(Width$) + 80
AudSnd.Left = Audio.Width - 60
AudO.Left = Audio.Width - 60
AudA.Left = Audio.Width - 60
AudB.Left = Audio.Width - 60
AudL.Left = Audio.Width - 60
AudC.Left = Audio.Width - 60
END IF
Audio.Repaint
aTextAgain
PlayAvi("put " + aFileName + " window at 14 60 " + Width$ + " " + Height$, 0, 0, 0)
CASE ELSE
PlayAvi("open " + aFileName + " type MpegVideo",0,0,0)
END SELECT
PlayAvi("status " + aFileName + " length",VARPTR(RetLength),256,0)
AudSlide.Max = VAL(LEFT$(RetLength,7))
AudSlide.Min = 0
Audio.Repaint
aTextAgain
PlayAvi("play " + aFileName + " from " + STR$(AudSlide.Position),0,0,0)
DO
DOEVENTS
PlayAvi("set " + aFileName + " audio all " + audio$, 0, 0, 0)
PlayAvi("status " + aFileName + " mode",VARPTR(RetAudio),256,0)
PlayAvi("status " + aFileName + " position",VARPTR(RetSlide),256,0)
AudSlide.Position = VAL(LEFT$(RetSlide,7))
LOOP UNTIL LEFT$(RetAudio,7) = "stopped" OR Audio.Visible = 0
PlayAvi("close " + aFileName,0,0,0)
AudSlide.Position = 0
Audio.Top = oTop
Audio.Height = oHeight
Audio.Width = oWidth
Audio.Left = oLeft
Audio.Left = oLeft
AudSnd.Left = 285
AudO.Left = 285
AudA.Left = 285
AudB.Left = 285
AudL.Left = 285
AudC.Left = 285
LOOP UNTIL loops = 0
AudL.Font.Bold= 1
InitAudio
CASE AudB.Handle
IF AudB.CAPTION = "Resume" THEN
AudB.CAPTION = "Pause"
PlayAvi("resume "+ aFileName,0,0,0)
ELSEIF AudB.CAPTION = "Pause" THEN
AudB.CAPTION = "Resume"
PlayAvi("pause "+ aFileName,0,0,0)
END IF
CASE AudL.Handle
IF loops = 0 THEN
loops = 1
AudL.Font.Bold = 1
ELSE
loops = 0
AudL.Font.Bold = 1
END IF
CASE AudC.Handle
CloseAudio
END SELECT
END SUB
SUB CloseAudio
PlayAvi("close all",0,0,0)
aFileName = ""
InitAudio
END SUB
SUB InitAudio
loops = 0
AudL.Font.Bold = 1
AudSlide.Position = 0
Audio.Repaint
Audio.TextOut(65,80,"CLICK PLAY or LOAD ANOTHER...",0,&HFFFFFF)
Audio.Top = oTop
Audio.Height = oHeight
Audio.Width = oWidth
Audio.Left = oLeft
Audio.Left = oLeft
AudSnd.Left = 285
AudO.Left = 285
AudA.Left = 285
AudB.Left = 285
AudL.Left = 285
AudC.Left = 285
END SUB
SUB Check
IF message = &H10 THEN CloseAudioForm
END SUB
SUB CloseAudioForm
PlayAvi("close all",0,0,0)
Application.Terminate
END SUB
SUB StopAudio
PlayAvi("stop "+ aFileName,0,0,0)
END SUB
SUB aTextAgain
Audio.TextOut(10,Audio.Height - 50," " + aFileName + " ",0,&HFFFFFF)
END SUB
|
|