garry
Anmeldedatum: 25.10.2005 Beiträge: 422 Wohnort: switzerland
|
Verfasst am: Do Apr 06, 2006 4:16 pm Titel: Subtitle (Karaoke) |
|
|
erstellt Untertitel für Musik/Video
benutzt Windows Media Player\mplayer2.exe
| Code: | ;---- LyricPlay.ahk XP 2006-04-05 garry
/*
--- Example:
--- put in folder SONGTEXT..... IwalkTheLine.txt
--- put in folder MEDIA ..... IwalkTheLine.mp3
--- ..... IwalkTheLine.jpg (otherwise=default.jpg)
1. start, select CreateLyric, doubleclick IwalkTheLine.mp3, hear song, cut songtext with CTRL-Button, finish with escape
2. start, doubleclick IwalkTheLine.mp3, hear sound and read text, script close when finished or close with escape
*/
;----------------------------------------------------------------------------------------
PLAYER=%A_ProgramFiles%\Windows Media Player\mplayer2.exe ;small built in windows player
#NoTrayIcon
settitlematchmode, 2
run,%COMSPEC% /C if not exist \SONGTEXT\NUL MD SONGTEXT,,hide
run,%COMSPEC% /C if not exist \MEDIA\NUL MD MEDIA,,hide
;-----------------------------------------------------------------------------
soundset,100
soundset,0,master,mute
menu,help1,Add,&How to Use,MH1
menu,help1,Add,&About,MH2
menu,myMenuBar,Add,Help,:help1
gui,menu,MyMenuBar
Gui, Color, 000000
Gui, Font, S10 CDefault , FixedSys
Gui, Show, x300 y0 w720 h400,SUBTITLE or KARAOKE
Gui,Add, ListView,grid r20 w700 gMyListView, Name|Size
Loop,%A_SCRIPTDIR%\MEDIA\*.mpg
gosub A4
Loop,%A_SCRIPTDIR%\MEDIA\*.avi
gosub A4
Loop,%A_SCRIPTDIR%\MEDIA\*.wav
gosub A4
Loop,%A_SCRIPTDIR%\MEDIA\*.MP3
gosub A4
GOTO A5
A4:
LV_Add("",A_LoopFileName,A_LoopFileSize)
LV_ModifyCol()
LV_ModifyCol(2, "Integer")
return
A5:
Gui,add,GroupBox,x10 y355 w200 h30
Gui,Font,S8 cwhite, Verdana
Gui, Add, Radio, x30 y367 vD1,PLAY
Gui, Add, Radio, x90 y367 ,CREATE LYRIC
GuiControl,,D1,1
Gui,Add,Button, x600 y365 w82 h20,MIXER
return
MH1:
msgbox,in MEDIA-folder : avi example:-avitest.avi`r`nin SONGTEXT-folder: example:-avitest.txt (the same name then MEDIA-file)`r`n-CREATE :start,select CreateLyric, doubleclick avi, video plays and cut text with CTRL-button`r`n-PLAY :start, doubleclick avi, video plays and see the created text
return
MH2:
msgbox,LYRICPLAY.AHK 2006-04-05 garry
return
;-----------------------------------------------------------------
ButtonMixer:
run,sndvol32.exe
return
MyListView:
Gui,submit,nohide
if A_GuiEvent = DoubleClick
{
LV_GetText(C1,A_EventInfo,1)
}
if C1=NAME
return
if C1=SIZE
return
if C1=
return
stringlen,L1,C1
stringmid,NT,C1,1,L1-4
stringright,R3,C1,3
T1=%NT%.txt
P1=%NT%.jpg
F2=%NT%.csv
ifexist %A_SCRIPTDIR%\MEDIA\%P1%
GOTO A6
else
P1=DEFAULT.JPG ;a default picture
A6:
if D1=2
{
ifexist %A_ScriptDir%\SONGTEXT\%F2%
{
MsgBox, 4, ,%F2% exist, overwrite it ?
IfMsgBox,No
ExitApp
}
FILEDELETE %A_ScriptDir%\SONGTEXT\%F2%
}
if D1=1
{
;counts milliseconds
I=0
loop,100
{
I+=1
filereadline,LINE,%A_ScriptDir%\SONGTEXT\%F2%,%I%
stringsplit,BX,LINE,`;,
if ErrorLevel <> 0
GOTO A10
V+=%BX1%
}
A10:
V1:=(V/1000)
M1:=V1/60
transform,M,floor,M1
transform,S1,MOD,V1,60
transform,S,floor,S1
stringlen,L,S
if L=1
S=0%S%
}
;--------------- VIDEO /MUSIC --------------------------------------
Q4X=.mpg,.wav,.mp3,.avi
stringright,Q4,C1,4
if Q4 contains %Q4X%
{
GOTO AVI
}
else
{
msgbox, Only files *.avi *.mpg *.wav *.mp3
exitApp
}
AVI:
WA=%A_screenwidth%
HA=%A_screenheight%
LB:=(HA*5)/100 ;TEXT X-POSITION
HB:=(HA*80)/100 ;TEXT Y-POSITION
WB:=(WA*90)/100 ;TEXT WIDTH
XM:=(WA*20)/100 ;picture
YM:=(HA*10)/100
WM:=(WA*60)/100
HM:=(HA*60)/100
Gui,2:-Border
Gui,2:Color,000000 ;BLACK
Gui,2:Font,S12 cwhite, Verdana
Gui,2:Show,x0 y0 w%A_screenwidth% h%A_screenheight%
Q4M=.wav,.mp3
stringright,Q4,C1,4
if Q4 contains %Q4M%
Gui,2:Add,Picture,x%XM% y%YM% w%WM% h%HM%,%A_SCRIPTDIR%\MEDIA\%P1%
Gui,2:Font,S1 cwhite, Verdana ;border
XM:=(WA*1)/100
YM:=(HA*1)/100
WT:=(WA*98)/100
HM:=(HA*98)/100
Gui,2:add,GroupBox,x%XM% y%YM% w%WT% h%HM%
if PLAYER=
{
run,%COMSPEC% /C "%A_SCRIPTDIR%\MEDIA\%C1%",,hide,NewPid1 ;default player
GOTO,LOOPX
}
ifexist %PLAYER%
{
if Q4 contains %Q4M%
{
run,"%PLAYER%" "%A_SCRIPTDIR%\MEDIA\%C1%",,min,NewPid1
Goto,LOOPX
}
else
{
run,"%PLAYER%" "%A_SCRIPTDIR%\MEDIA\%C1%",,,NewPid1
GOTO,LOOPX
}
}
LOOPX:
DetectHiddenWindows, on
DetectHiddenText,on
loop,300
{
WinGetTitle,TI,ahk_class Media Player 2
stringlen,SL,C1
stringmid,U2,TI,1,SL
stringleft,CL,C1,SL
if U2=%CL%
{
Goto,SCR2
}
sleep,20
}
;--------------------------------------------------------
SCR2:
Process, priority, %NewPID1%, High
process,exist,newpid1
;------------------------------------------------
PR1:
if D1=1
{
GOTO PLAYBACK
}
if D1=2
{
GOTO LYRIC
}
;---------------- 1_LYRIC ---------------------------------------
LYRIC:
Gui,2:Font,S12 cwhite, Verdana
LM:=(WA*5)/100
WT:=(WA*95)/100
YM:=(HA*92)/100
Gui,2:Add,TEXT, x%LM% y%YM% w%WT% h20,Modus-Lyric , use the CTRL-Button to cut the songtext- %TI%
Gui,2:Font,S30 cwhite, Verdana
{
I=0
A1:
I+=1
filereadline,A,%A_SCRIPTDIR%\SONGTEXT\%T1%,%I%
; if A=
; GOTO A1
if ErrorLevel <> 0
GOTO A2
Gui,2:Add,Edit,x%LB% y%HB% w%WB% h120 ReadOnly,%A%
start_time := A_TickCount
; keywait,space,D
keywait,control,D
TD := A_TickCount - start_time
sleep,250
TD:=TD+250
fileappend,%TD%;%A%`r`n,%A_SCRIPTDIR%\SONGTEXT\%F2%
goto A1
}
A2:
Gui,2:Add,Edit,x%LB% y%HB% w%WB% h120 ReadOnly,%X%
Gui,2:Font,S12 cwhite, Verdana
ES=No more lines.Push ESCAPE button when the movie or song is finished
Gui,2:Add,Edit,x%LB% y%HB% w%WB% h120 ReadOnly,%ES%
start_time2:=A_TickCount
; keywait,space,D
keywait,control,D
TD2:=A_TickCount-start_time2
sleep,250
TD2:=TD2+250
fileappend,%TD2%;`r`n,%A_SCRIPTDIR%\SONGTEXT\%F2%
Gui,2:Add,Edit,x%LB% y%HB% w%WB% h60 ReadOnly,%X%
Process,close,%NewPid1%
send, !{F4}
ExitApp
;----------------------------------------------------------------------
;------------------------- PLAYBACK -----------------------------------
PLAYBACK:
LM:=(WA*5)/100
WT:=(WA*92)/100
YM:=(HA*94)/100
Gui,2:Font,S12 cwhite, Verdana
Gui,2:Add,TEXT, x%LM% y%YM% w%WT% h20,Modus-Play Time= %M%:%S% -%TI%
Gui,2:Font,S30 cwhite,Verdana
{
I=0
A11:
I+=1
filereadline,LINE,%A_SCRIPTDIR%\SONGTEXT\%F2%,%I%
if ErrorLevel <> 0
GOTO ENDP
stringsplit,BX,LINE,`;,
if BX2=
{
Gui,2:Add,TEXT, x%LB% y%HB% w%WB% h120,%X%
Gui,2:Add,TEXT, x%LB% y%HB% w%WB% h120,%X%
GOTO A12
}
else
{
Gui,2:Add,TEXT, x%LB% y%HB% w%WB% h120,%BX2%
Gui,2:Add,TEXT, x%LB% y%HB% w%WB% h120,%BX2%
}
A12:
sleep %BX1%
goto A11
}
ENDP:
IF I=1 ;when no lyrics
{
Gui,2:Font,S12 cwhite, Verdana
Gui,2:Add,TEXT, x%LM% y%YM% w%WT% h20,Modus-Play
Gui,2:Add,TEXT, x%LM% y%YM% w%WT% h20,Modus-Play
Gui,2:Font,S30 cwhite, Verdana
Gui,2:Add,TEXT, x%LB% y%HB% w%WB% h120,%C1%
Gui,2:Add,TEXT, x%LB% y%HB% w%WB% h120,%C1%
keywait,Escape,D
}
Process,close,%NewPid1%
send, !{F4}
ExitApp
;-------------------------------------------------------------
;------------------ END -------------------------------
GuiClose:
ESC::
Process,close,%NewPid1%
send, !{F4}
ExitApp
;============================================================================================================
|
VerreLand.txt
Songtext welche mit CTRL-Button geschnitten wird:
| Code: | VERRE LAND (Jim Reeves)
Written by Nico Carstens and Anton de Waal
Daar's 'n ver, verre land, skone land
Waar die sonlig so rein helder skyn
Dis 'n droomland vir my wat my hart en siel bekoor
En ek weet ek moet antwoord as ek daardie roepstem hoor
Vaderland! Dis so ver hiervandaan
Dis nou tyd, sê vaarwel, ek moet gaan, ek moet gaan, ek moet gaan
Oor die see wil ek reis na 'n ver paradys
Waar die branders bruis en oestydwinde suis
Daardie ver, verre land lok my aan
Hier kan ek nie versuim, ek moet gaan, ek moet gaan, ek moet gaan
Oor die see wil ek reis na 'n ver paradys
Waar die branders bruis en oestydwinde suis
Daardie ver, verre land lok my aan
Hier kan ek nie versuim, ek moet gaan, ek moet gaan, ek moet gaan
|
VerreLand.csv
Resultat für play | Code: | 4734;VERRE LAND (Jim Reeves)
4485;Written by Nico Carstens and Anton de Waal
2906;
4828;Daar's 'n ver, verre land, skone land
1328;
4016;Waar die sonlig so rein helder skyn
1328;
5578;Dis 'n droomland vir my wat my hart en siel bekoor
1172;
4891;En ek weet ek moet antwoord as ek daardie roepstem hoor
984;
4250;Vaderland! Dis so ver hiervandaan
1453;
11250;Dis nou tyd, sê vaarwel, ek moet gaan, ek moet gaan, ek moet gaan
1594;
4594;Oor die see wil ek reis na 'n ver paradys
656;
4437;Waar die branders bruis en oestydwinde suis
1735;
3843;Daardie ver, verre land lok my aan
860;
12969;Hier kan ek nie versuim, ek moet gaan, ek moet gaan, ek moet gaan
11921;
5250;Oor die see wil ek reis na 'n ver paradys
813;
4984;Waar die branders bruis en oestydwinde suis
1078;
4141;Daardie ver, verre land lok my aan
1563;
10328;Hier kan ek nie versuim, ek moet gaan, ek moet gaan, ek moet gaan
1312;
|
|
|