View previous topic :: View next topic |
Author |
Message |
FreezingFire Admin Team
Joined: 23 Jun 2002 Posts: 3508
|
Posted: Thu Jan 16, 2003 8:56 pm Post subject: [Open Source]: Media Player |
|
|
__________________________________________________________________________________________________________________________
I thought that having a full-featured MCI media player that was open source would
help VDS users lean how to use MCI. I have had some trouble on getting this to work and I
thought that everyone would benefit from the growth of this player.
If you would like to contribute to this please do so!
Don't forget to download the player interface [here] or it won't look good.
Code: | Title Media Player
DIALOG CREATE,Media Player,-1,0,515,155,SMALLCAP
DIALOG ADD,STYLE,LINK,Verdana,,U,,BLUE
DIALOG ADD,STYLE,SMALL,Verdana,,,,FFFF80
DIALOG ADD,STYLE,LARGE,Verdana,24,,,FFFF80
DIALOG ADD,BITMAP,gui,0,0,516,155,gui.bmp,,CLICK
DIALOG ADD,TEXT,TIME,18,24,,,00:00,,TRANSPARENT,LARGE
DIALOG ADD,TEXT,BITRATE,64,24,,,0 Kbps,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SONG,10,236,264,13,Click the @chr(34)eject@chr(34) button to load a song...,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SiteLink,140,278,,,Visit http://www.vdsworld.com!,,LINK,TRANSPARENT,CLICK,HAND
DIALOG ADD,TEXT,b1,125,8,27,22,,,CLICK,HAND,TRANSPARENT
DIALOG ADD,TEXT,b2,125,38,26,22,,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b3,125,66,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b4,125,94,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b5,125,122,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b6,125,156,30,22,,,HAND,CLICK,TRANSPARENT
DIALOG SHOW
:B5CLICK
:B1CLICK
:Evloop
if %%play
wait event,1
else
wait event
end
%e = @event()
goto %e
:Timer
%R = @MCI(status sound length)
rem Convert to 00:00 Format
%%SongLength = @FDIV(%R,1000)
%T = @FORMAT(%%SongLength,.0)
%%SecsInDay = @PROD(@PROD(24,60),60)
%%Time = @FDIV(%T,%%SecsInDay)
%%Time = @DATETIME(nn:ss,%%Time)
:guiCLICK
if @mousedown(R)
rem dialog popup,Volume...|Options...|-|About Media Player
end
goto evloop
:B2CLICK
REM Play
if @not(%%song)
%x = @event()
goto evloop
end
%%paused = ""
%%stop = @mci(close sound)
%%play = @mci(open %%song alias sound)
if @ok()
%%play = @mci(play sound)
else
warn MCI error: %%play@cr()@cr()Usually this is an error caused by the user.@cr()Please re-start Media Player and try again.
end
goto evloop
:B3CLICK
REM Pause
goto evloop
:B4CLICK
REM Stop
goto evloop
:B6CLICK
REM Eject
%%song = @filedlg("Known Media Files|*.wav;*.mp3;*.cda;*.wma|Waveform Audio Files|*.wav|MP3 Files|*.mp3|CD Audio Files|*.cda|WMA Files|*.wma|All Files (*.*)|*.*")
if @ok()
goto B2CLICK
end
%%song = ""
goto evloop
:SiteLinkCLICK
shell open,"http://www.vdsworld.com/"
goto evloop
:Close
exit |
- FreezingFire
Last edited by FreezingFire on Sat Sep 06, 2003 4:58 pm; edited 1 time in total |
|
Back to top |
|
|
addictive Newbie
Joined: 06 Sep 2003 Posts: 7 Location: The Netherlands
|
Posted: Sat Sep 06, 2003 1:08 pm Post subject: |
|
|
Hi, I'm new to vds, but now I've seen this... *no words* this is really cool!!
I really have to learn vds.
@FreezingFire: really nice program!
greets
Mick |
|
Back to top |
|
|
Skit3000 Admin Team
Joined: 11 May 2002 Posts: 2166 Location: The Netherlands
|
|
Back to top |
|
|
Rinauld Raymond VDS Pirate
Joined: 22 Aug 2003 Posts: 32 Location: Aix (France)
|
Posted: Sat Sep 06, 2003 2:41 pm Post subject: |
|
|
Just wanna test the new vds tag
Code: | Title Media Player
DIALOG CREATE,Media Player,-1,0,515,155,SMALLCAP
DIALOG ADD,STYLE,LINK,Verdana,,U,,BLUE
DIALOG ADD,STYLE,SMALL,Verdana,,,,FFFF80
DIALOG ADD,STYLE,LARGE,Verdana,24,,,FFFF80
DIALOG ADD,BITMAP,gui,0,0,516,155,gui.bmp,,CLICK
DIALOG ADD,TEXT,TIME,18,24,,,00:00,,TRANSPARENT,LARGE
DIALOG ADD,TEXT,BITRATE,64,24,,,0 Kbps,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SONG,10,236,264,13,Click the @chr(34)eject@chr(34) button to load a song...,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SiteLink,140,278,,,Visit http://www.vdsworld.com!,,LINK,TRANSPARENT,CLICK,HAND
DIALOG ADD,TEXT,b1,125,8,27,22,,,CLICK,HAND,TRANSPARENT
DIALOG ADD,TEXT,b2,125,38,26,22,,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b3,125,66,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b4,125,94,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b5,125,122,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b6,125,156,30,22,,,HAND,CLICK,TRANSPARENT
DIALOG SHOW
:B5CLICK
:B1CLICK
:Evloop
if %%play
wait event,1
else
wait event
end
%e = @event()
goto %e
:Timer
%R = @MCI(status sound length)
rem Convert to 00:00 Format
%%SongLength = @FDIV(%R,1000)
%T = @FORMAT(%%SongLength,.0)
%%SecsInDay = @PROD(@PROD(24,60),60)
%%Time = @FDIV(%T,%%SecsInDay)
%%Time = @DATETIME(nn:ss,%%Time)
:guiCLICK
if @mousedown(R)
rem dialog popup,Volume...|Options...|-|About Media Player
end
goto evloop
:B2CLICK
REM Play
if @not(%%song)
%x = @event()
goto evloop
end
%%paused = ""
%%stop = @mci(close sound)
%%play = @mci(open %%song alias sound)
if @ok()
%%play = @mci(play sound)
else
warn MCI error: %%play@cr()@cr()Usually this is an error caused by the user.@cr()Please re-start Media Player and try again.
end
goto evloop
:B3CLICK
REM Pause
goto evloop
:B4CLICK
REM Stop
goto evloop
:B6CLICK
REM Eject
%%song = @filedlg("Known Media Files|*.wav;*.mp3;*.cda;*.wma|Waveform Audio Files|*.wav|MP3 Files|*.mp3|CD Audio Files|*.cda|WMA Files|*.wma|All Files (*.*)|*.*")
if @ok()
goto B2CLICK
end
%%song = ""
goto evloop
:SiteLinkCLICK
shell open,"http://www.vdsworld.com/"
goto evloop
:Close
exit |
|
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
|
Back to top |
|
|
FreezingFire Admin Team
Joined: 23 Jun 2002 Posts: 3508
|
Posted: Sat Sep 06, 2003 3:36 pm Post subject: |
|
|
Actually when I try this script again it doesn't work at all. _________________ FreezingFire
VDSWORLD.com
Site Admin Team |
|
Back to top |
|
|
Skit3000 Admin Team
Joined: 11 May 2002 Posts: 2166 Location: The Netherlands
|
|
Back to top |
|
|
FreezingFire Admin Team
Joined: 23 Jun 2002 Posts: 3508
|
Posted: Sat Sep 06, 2003 4:59 pm Post subject: |
|
|
I mean in the VDS IDE, it doesn't work right.
I don't think it was necessary to change the title... it's okay but I think that
CR will be fixing the bug with filenames with the next release maybe, just
a guess. _________________ FreezingFire
VDSWORLD.com
Site Admin Team |
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Sat Sep 06, 2003 5:15 pm Post subject: |
|
|
FF
I think there are some important changes needed:
You should *always* close the MCI device you opened else reboot after every play.
I had to logoff and back before the player worked again !!.
Make sure you add the close command in the close event so that cleanup is done before the app exits.
It didn't work for you in IDE because the previous instance was not cleaned and the device was not freed. (Because you are on XP the operating system did help U a little in cleanup when the compiled exe was run. were it 98 - blue screens )
Use @SHORTNAME() for media files.
You can add a trakbar and seek the media file forward/backward. That invoves major chnges so it is upto you. Still I feel you can look at the MIDI player which for example doesn't ffed the non numeric MCI error messages to timer and creat e another error. Sorry I am currently unable to write code. So more later.
Good luck
Regards _________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension |
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Sun Sep 07, 2003 2:39 am Post subject: |
|
|
I think I overemphasised the point with no code contribution at all. That's kinda lame. Sorry if anyone hurt.
Regards _________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension |
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Sun Sep 07, 2003 6:14 am Post subject: |
|
|
I have fixed most of the problems.
I don't know the philosophy of the project.
Code: | If
"It is that it should be compatible with all vds versions then options are very limited."
Else
You can add some advanced features:
Trackbar
Seek - forward/Backward.
Loop.
Multimedia keyboard support.
Mouse over effects to buttons.
Taskicon.
...
END !! |
Enjoy !!
Code: | OPTION DECIMALSEP,"."
TITle Media Player
DIALOG CREATE,Media Player,-1,0,515,155,SMALLCAP
DIALOG ADD,STYLE,LINK,Verdana,,U,,WHITE
DIALOG ADD,STYLE,SMALL,Verdana,,,,FFFF80
DIALOG ADD,STYLE,LARGE,Verdana,24,,,FFFF80
DIALOG ADD,BITMAP,gui,0,0,516,155,gui.bmp,,CLICK
DIALOG ADD,TEXT,TIME,18,24,,,00:00,,TRANSPARENT,LARGE
DIALOG ADD,TEXT,BITRATE,64,24,,,0 Kbps,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SONG,10,236,264,13,Click the @chr(34)eject@chr(34) button to load a song...,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SiteLink,142,278,,,Visit http://www.vdsworld.com!,,LINK,TRANSPARENT,CLICK,HAND
DIALOG ADD,TEXT,b1,125,8,27,22,,,CLICK,HAND,TRANSPARENT
DIALOG ADD,TEXT,b2,125,38,26,22,,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b3,125,66,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b4,125,94,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b5,125,122,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b6,125,156,30,22,,,HAND,CLICK,TRANSPARENT
DIALOG SHOW
%%paused = 1
:B5CLICK
:B1CLICK
:Evloop
if %%play
wait event,1
else
wait event
end
%e = @event()
goto %e
:Timer
IF %%song
%R = @MCI(status sound length)
END
REM Prevent givng alpanumeric error messages to crash math functions
IF @NUMERIC(%R)
REM Convert to 00:00 Format
%%SongLength = @FDIV(%R,1000)
%T = @FORMAT(%%SongLength,.0)
%%SecsInDay = @PROD(@PROD(24,60),60)
%%Time = @FDIV(%T,%%SecsInDay)
%%Time = @DATETIME(nn:ss,%%Time)
DIALOG SET,TIME,%%Time
END
:guiCLICK
if @mousedown(R)
rem dialog popup,Volume...|Options...|-|About Media Player
end
goto evloop
:B2CLICK
REM Play
if @not(%%song)
%x = @event()
goto evloop
end
IF %%paused
%%stop = @mci(close sound wait)
%%play = @mci(open %%song alias sound wait)
DIALOG SET,SONG,Playing @NAME(%%song1).@EXT(%%song1)
ELSE
DIALOG SET,SONG,Playing @NAME(%%song1).@EXT(%%song1)
END
%%play = @mci(play sound)
IF %%play
%%play = @mci(stop sound wait)
%%play = @mci(play sound)
END
IF %%play
DIALOG SET,SONG,%%play
END
%%paused = 1
%%play = 1
goto evloop
:B3CLICK
REM Pause
IF %%paused
%A = @MCI(pause sound)
END
%%paused = ""
DIALOG SET,SONG,Paused
WAIT 0.1
REM This delay prevents a indeterminate condition in MCI device
REM Increse the value if required
goto evloop
:B4CLICK
REM Stop
%%stop = @mci(stop sound)
DIALOG SET,SONG,Click the @chr(34)eject@chr(34) button to load a song...
%%play = ""
DIALOG SET,TIME,00:00
goto evloop
:B6CLICK
REM Eject
%%song1 = @filedlg("Known Media Files|*.wav;*.mp3;*.cda;*.wma|Waveform Audio Files|*.wav|MP3 Files|*.mp3|CD Audio Files|*.cda|WMA Files|*.wma|All Files (*.*)|*.*")
%%song = @SHORTNAME(%%song1)
if @ok()
goto B2CLICK
end
%%song = ""
goto evloop
:SiteLinkCLICK
shell open,"http://www.vdsworld.com/"
goto evloop
:Close
%%stop = @mci(close sound)
exit |
_________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension
Last edited by CodeScript on Mon Sep 08, 2003 5:42 pm; edited 1 time in total |
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Sun Sep 07, 2003 9:32 am Post subject: |
|
|
Well I have made significant changes and now it appears very stable on my computer running XP Pro atleast.
I have added trackbar with seek capabilities. I don't know if it breaks
comatability with previous versions.
For VDS 4.x removal of color style of the dialog should be sufficient but for 3.x there may be more problems as @mousedown() is not supported I think.
@mousedown() bug may trouble a little whenever you open the filedlg for which a small workaround may be possible.
Adding multimedia hotkey support and a title bar icon with a tool window and such features surely breaks compatability with previous versions. So I have decided not to add any of these.
Also I don't think any body is really interested in playing videos with it as the user interface suggests.
FreezingFire wrote: | but I think that CR will be fixing the bug with filenames with the next release maybe, just a guess. |
I couldn't encounter any I think MCI interface was designed during VDS 2.x and has not changed since so it does support LFNs obviously. I have encountered filename bug in @LIB() and IDE/DDE as far as I know
Please let me know the results.
Regards
Code: | OPTION DECIMALSEP,"."
TITle Media Player
DIALOG CREATE,Media Player,-1,0,515,155,SMALLCAP,COLOR 400040
REM *** Modified by Dialog Designer on 9/7/2003 - 14:11 ***
DIALOG ADD,STYLE,LINK,Verdana,,U,,WHITE
DIALOG ADD,STYLE,SMALL,Verdana,,,,FFFF80
DIALOG ADD,STYLE,LARGE,Verdana,24,,,FFFF80
DIALOG ADD,BITMAP,gui,-1,-1,516,155,gui.bmp,,CLICK
DIALOG ADD,TEXT,TIME,18,24,,,00:00,,TRANSPARENT,LARGE
DIALOG ADD,TEXT,BITRATE,64,24,,,0 Kbps,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SONG,10,236,264,13,Click the @chr(34)eject@chr(34) button to load a song...,,TRANSPARENT,SMALL
DIALOG ADD,TEXT,SiteLink,142,278,,,Visit http://www.vdsworld.com!,,LINK,TRANSPARENT,CLICK,HAND
DIALOG ADD,TEXT,b1,125,8,27,22,,,CLICK,HAND,TRANSPARENT
DIALOG ADD,TEXT,b2,125,38,26,22,,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b3,125,66,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b4,125,94,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b5,125,122,26,22,,,HAND,CLICK,TRANSPARENT
DIALOG ADD,TEXT,b6,125,156,30,22,,,HAND,CLICK,TRANSPARENT,DEFAULT
DIALOG ADD,TRACKBAR,TRACKBAR1,87,6,205,22,0,,,CLICK,BOTH
REM THIS BUTTON WAS ADDED TPO PREVENT UGLY FOCUS ON THE TACKBAR
DIALOG ADD,BUTTON,DUMMY,525,720,64,24,DUMMY
DIALOG SHOW
DIALOG FOCUS,DUMMY
%%paused = 1
:DUMMYbutton
:B5CLICK
:B1CLICK
:Evloop
if %%play
wait event,0.1
else
wait event
end
%e = @event()
goto %e
:Timer
IF %%song
%R = @MCI(status sound length)
END
REM Prevent givng alpanumeric error messages to crash math functions
IF @NUMERIC(%R)
IF %%Paused
REM IF LENGTH OF sound IS CURENT POSITION SOUND HAS REACHED END SO STOP IT
IF @EQUAL(%I,%R)
GOTO B4CLICK
END
END
END
IF @NOT(@MOUSEDOWN(L))
%R = @MCI(status sound length)
%I = @MCI(status sound position)
IF @NUMERIC(%R)
REM TRAP ZERO POSITION
IF @GREATER(%R,%I)
%Q = @FDIV(%I,%R)
DIALOG SET,TRACKBAR1,@FORMAT(@FMUL(@FDIV(%I,%R),100),4.0)
END
END
END
REM Convert to 00:00 Format
%%SongLength = @FDIV(%R,1000)
%T = @FORMAT(%%SongLength,.0)
%%SecsInDay = @PROD(@PROD(24,60),60)
%%Time = @FDIV(%T,%%SecsInDay)
%%Time = @DATETIME(nn:ss,%%Time)
DIALOG SET,TIME,%%Time
END
:guiCLICK
if @mousedown(R)
rem dialog popup,Volume...|Options...|-|About Media Player
end
goto evloop
:B2CLICK
REM Play
if @not(%%song)
%x = @event()
goto evloop
end
IF %%paused
%%stop = @mci(close sound wait)
%%play = @mci(open %%song alias sound wait)
DIALOG SET,SONG,Playing @NAME(%%song1).@EXT(%%song1)
ELSE
DIALOG SET,SONG,Playing @NAME(%%song1).@EXT(%%song1)
END
%%play = @mci(play sound)
IF %%play
%%play = @mci(stop sound wait)
%%play = @mci(play sound)
END
IF %%play
DIALOG SET,SONG,%%play
END
%%paused = 1
%%play = 1
goto evloop
:B3CLICK
REM Pause
IF %%paused
%A = @MCI(pause sound)
END
%%paused = ""
DIALOG SET,SONG,Paused
WAIT 0.1
REM This delay prevents a indeterminate condition in MCI device
REM Increse the value if required
goto evloop
:B4CLICK
REM Stop
%%stop = @mci(stop sound wait)
DIALOG SET,SONG,Click the @chr(34)eject@chr(34) button to load a song...
%%play = ""
%%paused = 1
REM Set The current position %I back to zero
REM else it will not play again as stop event is fired!
%I = 0
DIALOG SET,TIME,00:00
DIALOG SET,TRACKBAR1,0
goto evloop
:B6CLICK
REM Eject
%%song1 = @filedlg("Known Media Files|*.wav;*.mp3;*.cda;*.wma|Waveform Audio Files|*.wav|MP3 Files|*.mp3|CD Audio Files|*.cda|WMA Files|*.wma|All Files (*.*)|*.*")
%%song = @SHORTNAME(%%song1)
if @ok()
goto B2CLICK
end
%%song = ""
goto evloop
:TRACKBAR1CLICK
IF @NUMERIC(%R)
%A = @MCI(Seek sound to @FORMAT(@fmul(@fdiv(%R,100),@dlgtext(TRACKBAR1)),4.0))
WAIT 0.3
%A = @MCI(play sound)
DIALOG SET,SONG,Playing @NAME(%%song1).@EXT(%%song1)
ELSE
DIALOG SET,TRACKBAR1,0
END
wait 0.1
DIALOG FOCUS,DUMMY
%%paused = 1
GOTO EVLOOP
:SiteLinkCLICK
shell open,"http://www.vdsworld.com/"
goto evloop
:Close
%%stop = @mci(close sound)
exit |
_________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension |
|
Back to top |
|
|
FreezingFire Admin Team
Joined: 23 Jun 2002 Posts: 3508
|
Posted: Sun Sep 07, 2003 1:12 pm Post subject: |
|
|
CodeScript wrote: | I think I overemphasised the point with no code contribution at all. That's kinda lame. Sorry if anyone hurt.
Regards |
Sorry, CodeScript, I just forgot to reply because the forum marked all my
posts read when they weren't all read. Thanks a lot for contributing though
that's very nice of you. This is going to be an excellent help to newcomers
to VDS. Not to mention me too. _________________ FreezingFire
VDSWORLD.com
Site Admin Team |
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Sun Sep 07, 2003 1:14 pm Post subject: |
|
|
Thanks FF _________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension |
|
Back to top |
|
|
FreezingFire Admin Team
Joined: 23 Jun 2002 Posts: 3508
|
Posted: Sun Sep 07, 2003 1:24 pm Post subject: |
|
|
BTW, very nice results. I like it. This explains a lot of MCI to me. I didn't
get it very well but wanted to learn it. Thanks again CodeScript. _________________ FreezingFire
VDSWORLD.com
Site Admin Team |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You can attach files in this forum You can download files in this forum
|
|