Код: Выделить всё
PlayMedia PROCEDURE (LOC:File, LOC:From, LOC:Duration) ! Declare Procedure
LOC:SoundName CSTRING(256) !
LOC:mciCommand CSTRING(256) !
LOC:mciReturn CSTRING(256) !
LOC:Extention CSTRING(4) !
CODE
! Включение или выключение звука
! Пауза
if Loc:File='#'
LOC:mciCommand = 'pause video'
! LOC:mciCommand = 'pause sound'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
return(1)
elsif LOC:File='>'
if LOC:From
LOC:mciCommand = 'play video from ' & LOC:From
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
else
LOC:mciCommand = 'play video'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
end
return 1
elsif LOC:File='!'
LOC:mciCommand = 'stop video'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'close all'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
return 1
elsif LOC:File='?'
LOC:mciCommand = 'set video time format milliseconds'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'status video length'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
duration# = LOC:mciReturn
return duration#
elsif LOC:File='??'
LOC:mciCommand = 'status video position'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
duration# = LOC:mciReturn
return duration#
end
! Проверим, есть ли вообще звуковые каналы
LOC:mciCommand = 'capability waveaudio can play'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
if upper(LOC:mciReturn)<>'TRUE'
return 0
end
LOC:mciCommand = 'status video mode'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'stop video'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'close all'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
if ~LOC:File
return 0
end
LOC:SoundName = clip(LOC:File)
LOC:Extention = upper( sub( LOC:File, len( clip(LOC:File) ) -2, 3) )
case LOC:Extention
of 'WAV'
orof 'MP3'
orof 'OGG'
! orof 'MP4'
orof 'M4A'
orof 'WMA'
LOC:mciCommand = 'open "' & LOC:SoundName & '" alias sound'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'play sound'
if LOC:From
LOC:mciCommand = LOC:mciCommand & ' from ' & LOC:From * 10
end
If LOC:Duration
LOC:mciCommand = LOC:mciCommand & ' to ' & (LOC:From + LOC:Duration) * 10
End
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
of 'AVI'
LOC:mciCommand = 'open "' & LOC:SoundName & '" alias sound'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'play sound fullscreen'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
of 'MP4'
LOC:mciCommand = 'open "' & LOC:SoundName & '" type mpegvideo alias video' ! Parent ' & 0{prop:Handle} & ' style child'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
LOC:mciCommand = 'play video'
mciSendString(LOC:mciCommand, LOC:mciReturn, 128, 0)
end
return 1
Старт:
Код: Выделить всё
if LOC:SoundFile2=LOC:SoundFile and LOC:Status=2
if PlayMedia('>')
LOC:Status = 1
end
else
LOC:SoundFile2 = LOC:SoundFile
if PlayMedia(LOC:SoundFile)
LOC:Status = 1
LOC:Duration = PlayMedia('?')
?Image2{prop:Hide} = False
end
end
Код: Выделить всё
if PlayMedia('#')
LOC:Status = 2
end
Код: Выделить всё
if PlayMedia('!')
LOC:Status = 0
?Image2{prop:Hide} = True
?Image2{prop:at,3} = 0
end
Код: Выделить всё
x# = mousex() - ?Image1{prop:at,1}
from# = x# * LOC:Duration / ?Image1{prop:at,3}
if PlayMedia('>', from#)
end
Код: Выделить всё
MciCmd = 'put ' & Vname & ' window client at ' & |
Loc:N{Prop:Xpos} & ' ' & |
Loc:N{Prop:Ypos} & ' ' & |
W & ' ' & H