MovieSeek()

Got an idea for enhancing PureBasic? New command(s) you'd like to see?
urland
User
User
Posts: 13
Joined: Tue May 13, 2003 6:53 pm

MovieSeek()

Post by urland »

I've got my media player doing just about everything I want except being able to position whatever's playing with a slider bar. It would be nice if MovieSeek() would do this for at least the popular video and audio formats. The friends and family I've sent my program to say they like it, but without the ability to rewind or fast forward to a selected point, it's not quite useable as a player. Is there a chance of adding this? Thanks.
Doobrey
Enthusiast
Enthusiast
Posts: 218
Joined: Sat Apr 26, 2003 4:47 am
Location: Dullsville..population: me
Contact:

Re: MovieSeek()

Post by Doobrey »

urland wrote:The friends and family I've sent my program to say they like it, but without the ability to rewind or fast forward to a selected point, it's not quite useable as a player. Is there a chance of adding this? Thanks.
Have a look at the following commands...
MovieSeek(Framenumber)
MoveLength()
MovieStatus()
TrackBarGadget()
and maybe MovieInfo()

But as the manual says, not all commands work with MP3 files!

quick example (from the top of my head !)
to make the movie skip fwd 5 secs..
MovieSeek(MovieStatus()+(5*(MovieInfo()/1000)))

Shouldn`t be that much harder to fit in with a gadget event, by reading the new trackbarposition and skipping forward.
urland
User
User
Posts: 13
Joined: Tue May 13, 2003 6:53 pm

Re: MovieSeek()

Post by urland »

>Have a look at the following commands...
>MovieSeek(Framenumber)
>MoveLength()
>MovieStatus()
>TrackBarGadget()
>and maybe MovieInfo()

> But as the manual says, not all commands work with MP3 files!

I'm aware that the manual states this. I have a "wish" that the commands would work with .avi, .asf, .wav, .wmv, .mp3, .ogg, etc. To the best of my knowledge, the only thing MovieSeek() actually works on is mpeg files. Anything else gets sent back to the beginning. If I'm wrong on this, please give me an example of code using PB commands that works. If you have any interest in the source code I put together, it's available on the resource site under the name of UPlayer. Thanks much for the reply.

> quick example (from the top of my head !)
> to make the movie skip fwd 5 secs..
> MovieSeek(MovieStatus()+(5*(MovieInfo()/1000)))

Doesn't work here... (except on mpeg of course) PB 3.70 W2K SP3
Searhin
User
User
Posts: 41
Joined: Mon May 26, 2003 10:53 am
Location: Germany

Post by Searhin »

>To the best of my knowledge, the only thing MovieSeek() actually works on is mpeg files.

Right, i had the same problem. wrote a movie player and tested it with mpegs (worked) - wmv and avi didn't work.

So i second your request for MovieSeek() to work with other movie formats

Also, a generic PB command to take screenshots from movies would be nice (if it is possible at all with reasonable effort). Now it has to be done via the graphics buffer (to complicated for me... :( )
Doobrey
Enthusiast
Enthusiast
Posts: 218
Joined: Sat Apr 26, 2003 4:47 am
Location: Dullsville..population: me
Contact:

Re: MovieSeek()

Post by Doobrey »

Sorry Urland, I misread your original post..
I just found out myself about it only really working with Mpegs..
and MoveStatus() gives really high values when running wmv`s..
...and MovieInfo() crashes your app when used on a wmv !
naw
Enthusiast
Enthusiast
Posts: 573
Joined: Fri Apr 25, 2003 4:57 pm

Post by naw »

Hi, I got MovieSeek working off a TrackBarGadget()... Problems come in with some MP3s that have very high # of Frames (shown as negative values)...

Ta - N





; PureBasic Visual Designer v3.62
;- MenuBar Constants
;
#MenuBar_9 = 0
#MENU_1 = 1
#MENU_2 = 2
#MENU_3 = 3
#MENU_6 = 4
#MENU_4 = 5

;- Gadget Constants
;
#STATUS=0
#B_PLAYLIST = 1
#LOAD = 2
#SAVE = 3
#DELALL = 4
#PROGRESS = 5
#FADEIN = 6
#FADEOUT = 7
#VOLUME = 8
#T_PROGRESS = 9
#T_START = 10
#T_STOP = 11
#BALANCE = 12
#PLAYLIST_FILE = 13
#B_TRACKLIST = 14
#TRACKINFO = 15
#REW = 16
#FF = 17
#PAUSE = 18
#PLAY = 19
#STOP = 20
#PREV = 23
#NEXT = 24
#TRACKLIST = 25
#PLAYLIST = 26
#RECORD = 29
#HELP=30
;-PlayList AutoNav*
#PL_MOVEDN = 21
#PL_MOVEUP = 22
#PL_DELTRK =27
#PL_STOP=28



#IMG_PLAY=1
#IMG_PAUSE=2
#IMG_FWD=3
#IMG_REW=4
#IMG_PREV=5
#IMG_NEXT=6
#IMG_DEL=7
#IMG_REC=8
#IMG_DELALL=9
#IMG_MOVEUP=10
#IMG_MOVEDN=11
#IMG_INSSTOP=12
#IMG_STOP=13

;- StatusBar Constants
;
#StatusBar_11 = 0

;- Other Stuff

DefType.l
#FRAMEDIV.f=1000000000
#DEBUG=1
#DELAY=10
TRACKCTR=0
HELP$="Hints and tips are shown here..."+Chr(13)+" ...Before Loading an Tracks, Press all the buttons to discover what they do."+Chr(13)+" - just cancel any 'File Save' / 'File Load' Dialogue boxes..."
Global TRACKCTR, HELP$

Procedure.s ReadINI(section.s,key.s,empty.s,inifile.s)
result.s=Space(255)
GetPrivateProfileString_(section,key,empty,@result,255,inifile)
ProcedureReturn result.s
EndProcedure

Procedure.l WriteINI(section.s,key.s,value.s,inifile.s)
ProcedureReturn WritePrivateProfileString_(section,key,value,inifile)
EndProcedure

Procedure Open_Window_0()
If OpenWindow(0, 343, 80, 620, 370, #PB_Window_SystemMenu |#PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered , "New window ( 0 )")
SetWindowPos_(WindowID(),#HWND_TOPMOST,200,200,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
If CreateGadgetList(WindowID())
ComboBoxGadget(#PLAYLIST, 20, 30, 220, 240, #PB_ComboBox_Editable): AddGadgetItem(#PLAYLIST,0,"")
Frame3DGadget(#B_PLAYLIST, 10, 10, 600, 51, "Playlist Manager")
ButtonGadget(#LOAD, 250, 30, 40, 20, "Load")
ButtonGadget(#SAVE, 560, 30, 40, 20, "Save")
TrackBarGadget(#PROGRESS, 190, 70, 370, 20, 0, 10000)
TrackBarGadget(#FADEIN, 190, 90, 370, 20, 0, 10000): SetGadgetState(#FADEIN,0)
TrackBarGadget(#FADEOUT, 190, 110, 370, 20, 0, 10000): SetGadgetState(#FADEOUT,10000)
TrackBarGadget(#VOLUME, 70, 75, 100, 15, 0, 100): SetGadgetState(#VOLUME,100)
TextGadget(#T_PROGRESS, 560, 70, 50, 20, "Progress")
TextGadget(#T_START, 560, 90, 50, 20, "FadeIn")
TextGadget(#T_STOP, 560, 110, 50, 20, "FadeOut")
TrackBarGadget(#BALANCE, 70, 115, 100, 15, 0, 200): SetGadgetState(#BALANCE,100)
StringGadget(#PLAYLIST_FILE, 300, 30, 250, 20, "")
Frame3DGadget(#B_TRACKLIST, 10, 53, 600, 95, "Track Manager")
Frame3DGadget(#B_TRACKLIST, 10, 140, 600, 190, "TrackList Manager")
ListViewGadget(#TRACKINFO, 420, 160, 180, 150): AddGadgetItem(#TRACKINFO,0,"");: AddGadgetColumn(#TRACKINFO,1,"Value",86)
ListViewGadget(#TRACKLIST, 40, 160,380,150)
TextGadget(#STATUS,550,312,55,12,"STATUS")
TextGadget(#HELP,10,330,600,50,"Hint")


If (LoadImage(#IMG_REW, "./icons/back.ico")): ButtonImageGadget(#REW, 30, 90, 20, 20, UseImage(#IMG_REW)): Else: ButtonGadget(#REW,30,90,20,20,"<<"): EndIf
If (LoadImage(#IMG_FWD, "./icons/fwd.ico")): ButtonImageGadget(#FF, 70, 90, 20, 20, UseImage(#IMG_FWD)): Else: ButtonGadget(#FF,70,90,20,20,">>"): EndIf
If (LoadImage(#IMG_PAUSE, "./icons/pause.ico")): ButtonImageGadget(#PAUSE, 140, 90, 20, 20, UseImage(#IMG_PAUSE)): Else: ButtonGadget(#PAUSE,140,90,20,20,"||"): EndIf
If (LoadImage(#IMG_PLAY, "./icons/play.ico")): ButtonImageGadget(#PLAY, 50, 90, 20, 20, UseImage(#IMG_PLAY)): Else: ButtonGadget(#PLAY,50,90,20,20,">"): EndIf
If (LoadImage(#IMG_STOP, "./icons/stop.ico")): ButtonImageGadget(#STOP, 120, 90, 20, 20, UseImage(#IMG_STOP)): Else: ButtonGadget(#STOP,120,90,20,20,"!"): EndIf
If (LoadImage(#IMG_REC, "./icons/record.ico")): ButtonImageGadget(#RECORD, 95, 90, 20, 20, UseImage(#IMG_REC)): Else: ButtonGadget(#RECORD,95,90,20,20,"O"): EndIf
If (LoadImage(#IMG_PREV, "./icons/prev.ico")): ButtonImageGadget(#PREV, 50, 70, 20, 20, UseImage(#IMG_PREV)): Else: ButtonGadget(#PREV,50,70,20,20,"A"): EndIf
If (LoadImage(#IMG_NEXT, "./icons/next.ico")): ButtonImageGadget(#NEXT, 50, 110, 20, 20, UseImage(#IMG_NEXT)): Else: ButtonGadget(#NEXT,50,110,20,20,"V"): EndIf
If (LoadImage(#IMG_DEL, "./icons/delete.ico")): ButtonImageGadget(#PL_DELTRK,16,160,20,20,UseImage(#IMG_DEL)): Else: ButtonGadget(#PL_DELTRK,16,160,20,20,"X"): EndIf
If (LoadImage(#IMG_MOVEUP, "./icons/prev.ico")): ButtonImageGadget(#PL_MOVEUP,16, 180, 20, 20, UseImage(#IMG_MOVEUP)): Else: ButtonGadget(#PL_MOVEUP,16,180,20,20,"A"): EndIf
If (LoadImage(#IMG_MOVEDN, "./icons/next.ico")): ButtonImageGadget(#PL_MOVEDN,16, 200, 20, 20, UseImage(#IMG_MOVEDN)): Else: ButtonGadget(#PL_MOVEDN,16,200,20,20,"V"): EndIf
If (LoadImage(#IMG_INSSTOP, "./icons/stop.ico")): ButtonImageGadget(#PL_STOP,16, 220, 20, 20, UseImage(#IMG_INSSTOP)): Else: ButtonGadget(#PL_STOP,16,220,20,20,"!"): EndIf
If (LoadImage(#IMG_DELALL, "./icons/delall.ico")): ButtonImageGadget(#DELALL,16, 240, 20, 20, UseImage(#IMG_DELALL)): Else: ButtonGadget(#DELALL, 16, 240, 20, 20, "*"): EndIf
EndIf
EndIf
EndProcedure



Procedure.s LoadPlayList()
HELP$="This Loads a PlayList - you can Load multiple MP3 files or single Play Lists, Multiple 'Loads' will append to the bottom of the existing 'PlayList'. Loading a *.M3U PlayList will also perform various FileChecks. Loading a *.PLY will not include the same Checks (but is faster), the *.PLY format allows you to include 'STOPS' in the PlayList."
_index=0
_pl$=OpenFileRequester("Load Playlist","C:\My Music\"+GetGadgetText(#PLAYLIST),"Load PlayList (*.ply)|*.ply|Import PlayList (*.m3u)|*.m3u|Import MP3 Files (*.mp3)|*.mp3" ,0, #PB_Requester_MultiSelection)
_seek=0

;- Load Tracks from M3U File
If (GetExtensionPart(_pl$)="m3u")
If (ReadFile(_file, _pl$))
SetGadgetText(#PLAYLIST_FILE,_pl$)
AddGadgetItem(#PLAYLIST,-1,_pl$)
Repeat:
_track$=ReadString():
If (FileSize(_track$)>1000): LoadMovie(1,_track$):
If (MovieLength()>0): _index=_index+1: AddGadgetItem(#TRACKLIST,-1,_track$): TRACKCTR=TRACKCTR+1: EndIf:
EndIf

Until Eof(_file)
AddGadgetItem(#TRACKLIST,-1," - END OF PLAYLIST -")
EndIf
EndIf

;-Load Tracks from PLY File
If (GetExtensionPart(_pl$)="ply")
If (ReadFile(_file, _pl$))
SetGadgetText(#PLAYLIST_FILE,_pl$)
AddGadgetItem(#PLAYLIST,-1,_pl$)
Repeat:
_track$=ReadString():
_index=_index+1: AddGadgetItem(#TRACKLIST,-1,_track$): TRACKCTR=TRACKCTR+1
Until Eof(_file)
EndIf
EndIf


;- Load Tracks from MP3 File(s)

If ( GetExtensionPart(_pl$)="mp3")
SetGadgetText(#PLAYLIST_FILE,"Multiple MP3 Selection")
_track$=_pl$
Repeat:
If (FileSize(_track$)>1000): LoadMovie(1,_track$): If (MovieLength()>0):
_index=_index+1: AddGadgetItem(#TRACKLIST, -1, _track$): TRACKCTR=TRACKCTR+1: EndIf: EndIf
_track$=NextSelectedFileName()
Until _track$=""
AddGadgetItem(#TRACKLIST,-1," - END OF PLAYLIST -")
EndIf
ProcedureReturn _pl$
EndProcedure


Procedure$ PlayTrack(_track$,_index)
_vol$=ReadINI(_track$,"VOL","100","./PlayerTracks.db")
_fadein$=ReadINI(_track$,"FADEIN","0","./PlayerTracks.db")
_fadeout$=ReadINI(_track$,"FADEOUT","10000","./PlayerTracks.db")
SetGadgetState(#VOLUME,Val(_vol$))
If (_track$=" - STOP -"): StopMovie(): ProcedureReturn("READY"): EndIf
If (IsFilename(_track$) Or FileSize(_track$)<1000 ): ProcedureReturn("BAD FILE"): EndIf

LoadMovie(1,_track$)

If (MovieLength()<0): ProcedureReturn("BAD FILE")
Else: SetGadgetState(#TRACKLIST,GetGadgetState(#TRACKLIST)): LoadMovie(1,_track$): PlayMovie(1,0)
SetGadgetState(#FADEIN,Val(_fadein$))
SetGadgetState(#FADEOUT,Val(_fadeout$))
MovieSeek(GetGadgetState(#FADEIN) * (MovieLength()/10000))
RemoveGadgetItem(#TRACKINFO,1): AddGadgetItem(#TRACKINFO,1,"FileName"+Space(10)+GetFilePart(_track$))
RemoveGadgetItem(#TRACKINFO,2): AddGadgetItem(#TRACKINFO,2,"FileSize "+Space(10)+Str(FileSize(_track$))+" Bytes")
RemoveGadgetItem(#TRACKINFO,3): AddGadgetItem(#TRACKINFO,3,"# Frames"+Space(10)+Str(MovieLength()/10000)+" Frames")
ProcedureReturn("PLAYING")
EndIf
EndProcedure


Procedure PL_MoveUp()
HELP$="While Reordering the TrackList, the Track continues to play but 'Progress' updates are frozen until you press 'Play' again"
_tmppos=GetGadgetState(#TRACKLIST): _tmpitem$=GetGadgetText(#TRACKLIST):
If (_tmppos>0):
RemoveGadgetItem(#TRACKLIST,GetGadgetState(#TRACKLIST)):
AddGadgetItem(#TRACKLIST,_tmppos-1,_tmpitem$):
SetGadgetState(#TRACKLIST,_tmppos-1)
EndIf
EndProcedure


Procedure PL_MoveDn()
HELP$="While Reordering the TrackList, the Track continues to play but 'Progress' updates are frozen until you press 'Play' again"
_tmppos=GetGadgetState(#TRACKLIST): _tmpitem$=GetGadgetText(#TRACKLIST):
If (_tmppos<TRACKCTR-1)
RemoveGadgetItem(#TRACKLIST,GetGadgetState(#TRACKLIST)):
AddGadgetItem(#TRACKLIST,_tmppos+1,_tmpitem$):
SetGadgetState(#TRACKLIST,_tmppos+1)
EndIf
EndProcedure


Procedure PL_Stop()
HELP$="You Inserted a 'STOP' into the TrackList - The Player will now stop once it reaches this point (until you select another track to play)"
_tmppos=GetGadgetState(#TRACKLIST):
AddGadgetItem(#TRACKLIST,_tmppos," - STOP -"):
TRACKCTR=TRACKCTR+1
SetGadgetState(#TRACKLIST,_tmppos):
EndProcedure


Procedure RecordTrackSettings(_track$,_vol,_fadein,_fadeout)
HELP$="This will record Volume & FadeIn / Fadeout positions to the 'PlayerTracks.db' file so your Track will start & stop at the right place and play at the right volume."
WriteINI(_track$,"VOL",Str(_vol),"./PlayerTracks.db")
WriteINI(_track$,"FADEIN",Str(_fadein),"./PlayerTracks.db")
ProcedureReturn WriteINI(_track$,"FADEOUT",Str(_fadeout),"./PlayerTracks.db")
EndProcedure


Procedure PL_DelTrk()
HELP$="This will clear a single track from the TrackList"
_track=GetGadgetState(#TRACKLIST): RemoveGadgetItem(#TRACKLIST,_track):
SetGadgetState(#TRACKLIST,_track):
TRACKCTR=TRACKCTR-1
EndProcedure


Procedure PL_DelAll()
HELP$="Selecting this option will clear the entire TrackList (but not the file)"
If (MessageRequester("Confirm","Are you sure you want to clear your tracklist?",#PB_MessageRequester_YesNo)=6):
Repeat:
RemoveGadgetItem(#TRACKLIST,0): TRACKCTR=TRACKCTR-1:
Until TRACKCTR<=-999:
TRACKCTR=0
SetGadgetState(#TRACKLIST,0)
EndIf:
EndProcedure


Procedure SavePlayList(_index)
HELP$="This will save your PlayList in the *.PLY format which may include any 'STOPS' you may have inserted into your PlayList"
_ext$=GetExtensionPart(GetGadgetText(#PLAYLIST_FILE))
_file$=ReplaceString(GetGadgetText(#PLAYLIST_FILE),_ext$,"ply",1)
If (_file$=""): _file$="Default.ply": EndIf
_file$=SaveFileRequester("Save PlayList File",_file$,"*.ply",1)
DeleteFile(_file$)
If (OpenFile(0,_file$))
_index=0
Repeat:
SetGadgetState(#TRACKLIST,_index)
_track$=GetGadgetText(#TRACKLIST): _index=_index+1
WriteStringN(_track$)
Until _index=TRACKCTR+1
CloseFile(0)
SetGadgetState(#TRACKLIST,_index)
EndIf
EndProcedure


;-MAIN#######################################



If (InitMovie()): Else: MessageRequester("Fatal Error","Can't Initialise Movie Player",1): EndIf

LOOPCTR=0

Open_Window_0()
AdvancedGadgetEvents(#TRUE)
STATUS$="READY": reps=0
_vol=100: bal=0

Repeat: EventID = WindowEvent(): Delay(#DELAY)
reps=reps+1
SetGadgetText(#STATUS,STATUS$)

If (STATUS$="PLAYING"); And reps=1)
RemoveGadgetItem(#TRACKINFO,4): AddGadgetItem(#TRACKINFO,4,"Position"+Space(10)+Str(MovieStatus()/10000))
RemoveGadgetItem(#TRACKINFO,5): AddGadgetItem(#TRACKINFO,5,"Fadein "+Space(10)+Str(GetGadgetState(#FADEIN)*(MovieLength()/10000)/10000))
RemoveGadgetItem(#TRACKINFO,6): AddGadgetItem(#TRACKINFO,6,"Fadeout"+Space(10)+Str(GetGadgetState(#FADEOUT) * (MovieLength()/10000)/10000))
RemoveGadgetItem(#TRACKINFO,7): AddGadgetItem(#TRACKINFO,7,"# Tracks"+Space(10)+Str(TRACKCTR))
SetGadgetState(#PROGRESS,MovieStatus()/(MovieLength()/10000)):
EndIf

If (reps=1): SetGadgetText(#STATUS,STATUS$) : EndIf
If (STATUS$="SEEK")
_divfactor.f=MovieLength()/10000
_seek.f=GetGadgetState(#PROGRESS)*_divfactor.f
RemoveGadgetItem(#TRACKINFO,4): AddGadgetItem(#TRACKINFO,4,"Position"+Space(10)+Str(MovieStatus()/10000)):
MovieSeek(_seek.f)
EndIf

If (GetGadgetState(#PROGRESS)>GetGadgetState(#FADEOUT)+1 And STATUS$<>"STOPPED" ); And reps=1):
_vol=_vol-1: MovieAudio(_vol,_bal): SetGadgetState(#VOLUME,_vol)
If (_vol=0):
_vol=100: SetGadgetState(#TRACKLIST,GetGadgetState(#TRACKLIST)+1): STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST)):
EndIf
EndIf

If (GetGadgetState(#PROGRESS)>=9997)
SetGadgetState(#TRACKLIST,GetGadgetState(#TRACKLIST)+1): STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST))
EndIf


If (GetGadgetText(#TRACKLIST)=" - END OF PLAYLIST -"): STATUS$="READY": StopMovie(): EndIf

If (reps>=300): reps=0: EndIf

If (GetGadgetState(#FADEIN)<0 Or GetGadgetState(#FADEOUT)<0): STATUS$="BAD FILE": EndIf

Select EventID:
Case #PB_EventGadget:
Select EventGadgetID():
Case #PLAYLIST: GID=0
Case #TRACKLIST: Select EventType():
Case #PB_EventType_LeftDoubleClick: STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST))
EndSelect
Case #LOAD: PLAYLIST$=LoadPlayList()
Case #SAVE: SavePlayList(GetGadgetState(#TRACKLIST))

Case #DELALL: PL_DelAll():

Case #REW: MovieSeek(MovieStatus()-9999999): HELP$="Skipping Backwards a few seconds"

Case #FF: MovieSeek(MovieStatus()+9999999): HELP$="Skipping Forwards a few seconds"

Case #PAUSE: PauseMovie(): STATUS$="PAUSED": HELP$="You Paused the Track, Press 'Play' to resume"

Case #PLAY: Select STATUS$
Case "SEEK": STATUS$="RESUME"
Case "REORDER": STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST))
Case "PAUSED" : ResumeMovie(): STATUS$="PLAYING"
Case "PLAYING": STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST))
Case "STOPPED": STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST))
Case "READY": STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST))
EndSelect
HELP$="This Plays a Track - (unless you inserted a 'STOP') - ' - End Of PlayList -' markers are simply skipped"+Chr(13)+"If you previously paused a track, 'Play' will resume it. If you 'STOPPED' a track, this will restart it."

Case #STOP: StopMovie(): STATUS$="STOPPED": HELP$="You Stopped Playing the Track - Press 'PLAY' to Restart"

Case #PREV: SetGadgetState(#TRACKLIST,GetGadgetState(#TRACKLIST)-1): STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST)): HELP$="Use this to skip back a track"

Case #NEXT: SetGadgetState(#TRACKLIST,GetGadgetState(#TRACKLIST)+1): STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST)): HELP$="Use this to skip to the Next Track"

Case #PROGRESS: STATUS$="SEEK": HELP$="Use this to quickly skip forwards or backwards - press 'PLAY' to resume Playing"

Case #VOLUME: MovieAudio(GetGadgetState(#VOLUME), GetGadgetState(#BALANCE)-100): _vol=GetGadgetState(#VOLUME): HELP$="This is the Volume Control"

Case #BALANCE: MovieAudio(GetGadgetState(#VOLUME), GetGadgetState(#BALANCE)-100): _bal=GetGadgetState(#BALANCE)-100: HELP$="This is the Balance Control"

Case #PL_DELTRK: PL_DelTrk()

Case #PL_MOVEUP: OSTATUS$=STATUS$: PL_MoveUP(): STATUS$="REORDER"

Case #PL_MOVEDN: OSTATUS$=STATUS$: PL_MoveDn(): STATUS$="REORDER"

Case #PL_STOP: PL_Stop()

Case #RECORD: OSTATUS$=STATUS$: STATUS$="RECORD": SetGadgetText(#STATUS,STATUS$)
_result=RecordTrackSettings(GetGadgetText(#TRACKLIST),GetGadgetState(#VOLUME),GetGadgetState(#FADEIN),GetGadgetState(#FADEOUT))

Case #FADEIN: HELP$="This sets the Start Point for an individual track - If you press the 'RECORD' button, it will be stored in the 'PlayerTracks.db' file"

Case #FADEOUT: HELP$="This sets the FadeOut for an individual track - Once the Progress slider reaches the same point, it takes about 3 seconds to 'FadeOut' and move to the next track."+Chr(13)+"If you press the 'RECORD' button, it will be stored in the 'PlayerTracks.db' file"

Case #TRACKINFO: HELP$="This shows specific TrackInfo - Progress / Fadein / FadeOut stuff"
Case #TRACKLIST: HELP$="This is the TrackList - 'Reorder' / 'Delete' tracks or Insert a 'Stop' using the Buttons to the Left"


EndSelect
Case #PB_Event_Menu:; Do Nothing
Case #PB_Event_CloseWindow: Exit=1
Case #PB_Event_Repaint:; Do Nothing
Case #PB_Event_MoveWindow; Do Nothing
EndSelect

Delay(#DELAY)

Select STATUS$:
Case "RESUME": STATUS$=OSTATUS$:
Case "BAD FILE": SetGadgetText(#STATUS,STATUS$):
Delay(#DELAY*1): SetGadgetState(#TRACKLIST,GetGadgetState(#TRACKLIST)+1):
STATUS$=PlayTrack(GetGadgetText(#TRACKLIST),GetGadgetState(#TRACKLIST)):
Case "RECORD": Delay(#DELAY*30): STATUS$=OSTATUS$: SetGadgetText(#STATUS,STATUS$)
EndSelect

If (HELP$<>_ohelp$): SetGadgetText(#HELP,HELP$): EndIf: _ohelp$=HELP$

Until Exit=1
Ta - N
urland
User
User
Posts: 13
Joined: Tue May 13, 2003 6:53 pm

Re: MovieSeek()

Post by urland »

Doobrey wrote:Sorry Urland, I misread your original post..
I just found out myself about it only really working with Mpegs..
and MoveStatus() gives really high values when running wmv`s..
...and MovieInfo() crashes your app when used on a wmv !
No problem. Sorry it took so long to reply. Things been kinda crazy. Yeah, I've noticed the thing with MovieStatus as well. Really high numbers. Thanks for the crash info with wmv's. I hadn't run into that (yet!).
urland
User
User
Posts: 13
Joined: Tue May 13, 2003 6:53 pm

Post by urland »

[quote="naw"]Hi, I got MovieSeek working off a TrackBarGadget()... Problems come in with some MP3s that have very high # of Frames (shown as negative values)...

Ta - N
/quote]

Thanks for the code. I'll see if I can figure it out and see what all it works on.
Post Reply