View Full Version : MP3 Player v2 - XML
Voetsjoeba
March 4th, 2004, 03:25 PM
Hi Kirupians :)
I've been promising this for a long time now - and here it finally is; MP3 player v2. I've made two versions - one with XML and one with PHP. This is the one with XML. Though many people have requested it, I did not make this version a streaming player. My main goal with this player was to write a more reliable core with more logical internal functioning to prevent bugs.
This version uses XML to store the song information, which is then read by Flash and processed. The URL itself is protected from the XML parser, so that no problems occur when using non-default characters in URLs.
This player is available to everyone - you are free to download and use it. Anyone can use and modify it freely.
The XML player can be seen in action here (http://voetsjoeba.com/v2XML.html).
Feel free to report any bugs.
Voetsjoeba
March 4th, 2004, 03:26 PM
FLA file:
MX 2004: http://users.pandora.be/voetsjoeba/mp3/xml/v2XML.fla
MX: http://users.pandora.be/voetsjoeba/mp3/xml/v2XMLMX.fla
XML file:
http://users.pandora.be/voetsjoeba/mp3/xml/onlineplaylist.xml
mlkedave
March 4th, 2004, 04:10 PM
wow u are awesome THANK U
Blenderben
March 4th, 2004, 08:23 PM
wow, quite handy! might use it for future learning..i made a similar one, here, its not as cool as yours, but its the same idea.
link: My Jukebox (http://www.freakyfreaky.net/escalix/tmp/minijukebox.swf)
tell me what u think...
hga77
March 4th, 2004, 08:52 PM
Great stuff Voetsjoeba :)
But do i need mx2004 to use this player, since i only have flash mx?
bayek
March 5th, 2004, 02:34 AM
Thank you;), I feel I need to join this choir of folks who praise this next great piece of work you've done. Your player is awesome, kicks ***, really useful. Great thanks Voets! :)
Voetsjoeba
March 5th, 2004, 11:14 AM
I'll save to MX as well :)
DDD
March 5th, 2004, 01:20 PM
gj. V. You read my mind on this one.
Azazel
March 5th, 2004, 07:23 PM
U ROCK MAN :beer:
I've recently started working in FlashMX 2004P, and I can't seem to get enough of it... hope i'll be able to make somthing like this myself some day :thumb: :h:
hga77
March 5th, 2004, 08:08 PM
thanks Voetsjoeba ;)
eddie
March 5th, 2004, 10:52 PM
Wicked mp3 player Voetsjoeba, hope to be able to program like this one day.
Nuff Thanks
eddie
March 5th, 2004, 11:47 PM
Voetsjoeba you're a gift from the Gods, wicked player.
I wanted to customize the code a bit by loading a picture of each songs cd and its relevant title (songInfo), or is this not possible using XML.
Also could you please make the title (songInfo) scroll from right to left, I hope I am not asking too much.
Thanks a million, I really do appreciate your help.
Peace
Stalker_D
March 6th, 2004, 02:17 AM
wow very nice..ive been looking for this kind... but
please can you guys tell me i just downloaded the file
and how can i edit it...??? and the xml file do i need it inorder to work please?...im new to this stuff i want to learn thanks guys
Blenderben
March 6th, 2004, 03:06 AM
i know i've posted b4, but can anyone give me some suggestions for my mp3 player as well, its diferent that voets. so yeaaa..here we are
http://www.freakyfreaky.net/escalix/tmp/minijukebox.swf
Voetsjoeba
March 6th, 2004, 04:12 AM
Originally posted by eddie
Voetsjoeba you're a gift from the Gods, wicked player.
I wanted to customize the code a bit by loading a picture of each songs cd and its relevant title (songInfo), or is this not possible using XML.
Also could you please make the title (songInfo) scroll from right to left, I hope I am not asking too much.
Thanks a million, I really do appreciate your help.
Peace
That is possible, yes. What you need to do is add a node with the URLs to the JPGs to the XML file. Flash can then read it and use loadMovie to load the JPG from the URL.
Here's a good tutorial on XML in FLash: http://www.actionscript.org/tutorials/intermediate/XML/index.shtml
Stalker_D
March 7th, 2004, 01:30 AM
i downloaded the Mx File and copy the XML file
and i still cant figure out how this thing works...
i uploaded the swf file on my site it works fine but
how can i attached the xml file..
can some somebody Please tell me step by step how to upload this files on a site...
or is there anything else to be done before uploading it..?
thanks guys...
ez_stylin
March 10th, 2004, 10:41 PM
wicked..
now i can skin another mp3 player! yey!
:D
Great work! 2 thumbs up.. and 2 toes up... ehehe
Voetsjoeba
March 11th, 2004, 02:44 PM
I was waiting for you ;)
scottjr
March 17th, 2004, 07:32 AM
this is my first post in this forum, you guys rock. xml musicbox is real handy. thanks a lot for sharing with us.
T-O
March 18th, 2004, 03:43 PM
super voets...
mjULTRA
March 18th, 2004, 03:56 PM
nice..
Carny
March 25th, 2004, 01:11 PM
Hi,
Can I just say this is an exellent player, thanks!!
Also I'm having trouble getting the .swf to pick up the xml playlist. is there any reason it might be doing this?
Thanks
Stu.
Voetsjoeba
March 25th, 2004, 01:23 PM
Anything could be wrong, I can't really tell just by knowing something's wrong ;)
Carny
March 26th, 2004, 04:48 AM
Sorry about that I was in a rush when I typed it out, but I figured out what was wrong...
After the .mp3 I had a space where the ]] should of been so deleting that space fixed the problem, and it now works...
Thanks again for this great mp3 player :D
Lost
March 29th, 2004, 12:16 AM
Very very nice, I learned a lot from your example
Voetsjoeba
March 30th, 2004, 05:57 AM
Glad to hear that :)
UnblessedOmega
April 17th, 2004, 01:14 AM
...xml? not familiar with it...do i need it in my webhost? and how do i know if i have it or not?
Voetsjoeba
April 17th, 2004, 04:42 AM
XML is not server side like PHP for example, your server doesn't need to have anything installed for you to be able to use XML files.
therockstar
April 17th, 2004, 06:29 AM
XML is not server side like PHP for example, your server doesn't need to have anything installed for you to be able to use XML files.
Hi Voetsjoeba,
Your mp3 player is great - very slick and smooth... couple of small questions for you though - are you still planning to create a streaming version?....
I've also had a go at creating a pull down playlist, but to be honest Im not good enough with flash (only just learning the basics) and i'm not sure where to begin....
Any chance of having a go at it or giving us some help as to where to begin?..
Many thanks
Nick
Craymel
April 17th, 2004, 10:18 AM
Help , i can't get this thing work . can't add song . the file you gave . AH , everything is not working (for me) can someone teach me ?
UnblessedOmega
April 19th, 2004, 02:19 AM
can u give better instructions onw hat to do??? once u have the files then what?? im so confused but i want it so bad
Voetsjoeba
April 19th, 2004, 02:12 PM
Well Flash gets the information about the songs through the XML file, so edit the XML file to add tracks, edit song titles, etc. Have a look at the file and you'll see what I'm talkin' about.
Craymel - what exactly did you do to add te file ?
Therockstar - I'd say use a list component or a dropdown box component, add the tracks using a for loop and when you click an item you have the same functions execute as the next and previous buttons. Use those as a reference.
DJ LIQUID
April 20th, 2004, 11:25 PM
sweet :)
UnblessedOmega
April 20th, 2004, 11:27 PM
ok i figured it out thanks :D but im afraid to change the look of it and i might mess it up lol
SteadyScene
April 22nd, 2004, 02:19 PM
Voets, amazing work. I am using your mp3 player and only have one request. How do I make the mp3v2 player streaming?
Cheers Mate!
Daniel
Zer0
April 22nd, 2004, 02:33 PM
Hello,
Thanks Voetsjoeba for the great tool. I have 2 questions.
1) Is it possible for this application to load random music from the xml file
2) Is it possible to add remaining time for the application. I tried to add without success.
Thanks
voodoo
April 23rd, 2004, 02:04 PM
hi man your player is cool i had one once but not cool as urs here is a link for it ....keep up the good work..also how do i add traks to the xml list i know some xml so i typed something like this but didnot work
<?xml version="1.0" encoding="iso-8859-1"?>
<playlist>
<song title="I'll wait" artist="Audioslave"><![sound1.mp3]]></song>
<song title="Incubus" artist="Incubus"><![sound2.mp3]]></song>
<song title="After Ventus" artist="Enya"><![CDATA[http://www.kieto.com/aferventis.mp3]]></song>
<song title="Athair Ar Neamh" artist="Enya"><![CDATA[http://www.infinex.com/~nai/enya_-_athair_ar_neamh.mp3]]></song>
<song title="No Holly For Miss Quinn" artist="Enya"><![CDATA[http://www.kieto.com/noholly.mp3]]></song>
</playlist>
here is my player
http://voodo.t35.com/mp3player.php
Voetsjoeba
April 23rd, 2004, 02:37 PM
Don't forget the CDATA ... other than that, I don't see why it wouldn't work.
SteadyScene
April 23rd, 2004, 02:39 PM
Hes alive!
ketanmv
May 3rd, 2004, 10:21 PM
Is there an easy way to make the song just load in and not play until the user clicks on play, as to not be obnoxious?
Thanks!
ketan
hey_suburbia
May 4th, 2004, 05:11 PM
What about streaming?
piku
May 5th, 2004, 09:14 PM
great mp3 player... tweaking mine up at http://test.pixelbebop.com/test08/ ...kinda need help on how-to make that volume slider horizontal. if you could please give me some pointers/help, i'd greatly appreciate it.
also, if i do decide to make this more minimalistic (no title/artist) do i just disable the function call to *SongInfo() or what have you...?
addition: note... how it plays between IE and firefox (persay). smooth in IE, but somewhat hiccups in firefox (on my end at least) ...anyone else notice this on their PCs/MACs?
addition(^2): got some more ideas while i was playing around w/ this... is it possible to keep playing the current track if the next track aint even loaded yet (when someone pressed next and/or prev buttons)?
TIA.
mikedotnow
May 16th, 2004, 11:21 AM
I'd also like to know how to get it to just load but not play, as piku has asked.
My other request is this, if at all possible.. Is there any way to get the time of the song to display? I saw the one guy's variation of this and he had the time up.. but.. not sure...
Voetsjoeba
May 16th, 2004, 12:10 PM
As a lot of people have requested it, I guess I'll make a streaming player.
Everybody that has specific requests - I can't make a custom player for everyone, sorry.
webelf
May 18th, 2004, 03:59 PM
Blenden - overall I like it - one thing that I would work on changing though is the need to copy and paste from the playlist. You should have it so that a single click on the song loads it in the player.
Other than that it works better than many I've seen and tried.
synkop
May 19th, 2004, 10:50 AM
Yeah, this one is realy useful, loads of thumbs up. But a streaming version would indeed be even better!
Voetsjoeba
May 22nd, 2004, 04:05 AM
It's almost done ;)
piku
May 22nd, 2004, 05:23 AM
w/ cherry on top?! =p can't wait voets...learning AS through scripts like these
snaphappy
May 25th, 2004, 03:52 AM
Great player Voetsjoeba, this is just the kind of thing I was searching for, I add a BIG THANKS for sharing it with the learners like myself and for providing an MX version.
Threads like this make these forums increasingly addictive!:be:
ryhtmik1
May 25th, 2004, 08:49 AM
Just wanted to add my thanks to the list.. very nice work!! Elegant, simple, well coded.. very generous of you to share this.
Paul
dude9er
May 31st, 2004, 10:54 AM
awesome player. Totally helps out. Definitely like the streaming player best as on your site. Can't wait to download it. Thanks man!!
dude9er
May 31st, 2004, 12:05 PM
hey voetsjoeba, I checked out your site and noticed the streaming version of you XML player. I tried to download it but it gave me an error page. Would love to check it out when you get a chance.
Thanks.
d-woo
June 12th, 2004, 01:07 AM
Great player. I'm anxiously awaiting the streaming version...that plays songs sequentially...just like the current one.
GreenLantern
June 12th, 2004, 01:54 AM
How have I missed this thread?
Anyway, i'm sure I will be using this on my site. Thanks, i'll give you a shout.
Voetsjoeba
June 12th, 2004, 02:13 PM
The streaming one is out by the way, in case you wouldn't know :)
piku
June 12th, 2004, 02:49 PM
linkage >> http://www.kirupaforum.com/forums/showthread.php?t=58641
paddy.
July 30th, 2004, 11:51 AM
I have a problem. I have the xml playlist saved on my computer as 'onlineplaylist.xml' as it is called in the code. However the player doesn't seem to be able to find it as it keeps telling me:
Error opening URL "file:///C|/My%20Documents/undefined"
What am I doing wrong here? Can anyone help me?
Voetsjoeba
July 30th, 2004, 11:57 AM
Does the song title show up or does it show undefined ? If it shows undefined, then it's the XML file, if the song name shows up, then the path to the mp3's is wrong.
paddy.
July 30th, 2004, 12:08 PM
song name show's up 'undefined'. I wn't read your reply until at least Tuesday so thanx in advance. I'm off to my caravan.
Voetsjoeba
July 30th, 2004, 01:18 PM
Then your XML file is not loading correctly. Make sure the paths are all correct.
Nubs
July 31st, 2004, 01:27 AM
GOOD WORK MY FRIEND!!!!!!!!!! awesome awesome awesome, exactly what i was looking for!
tonygarcia
August 2nd, 2004, 01:18 AM
AWESOME
very kind of you to share the source.
I built a similar media player
http://www.southernmayhem.com
check it out
Voetsjoeba
August 2nd, 2004, 02:39 AM
Nubs - thanks :)
tony - Not bad ! :)
paddy.
August 3rd, 2004, 06:17 PM
Then your XML file is not loading correctly. Make sure the paths are all correct.Thanks Voets. I'll try and put it right now.
What do you mean paths? The songs in the xml file or the xml file itself? How can I change the target url of the xml file? Where is it in the actionscript? Also does it matter that the player is inside an MC?
Awaiting your reply, Paddy
plantain_tart
August 3rd, 2004, 11:40 PM
I was wondering, is there a way to play a particular track by hard coding it in a button? Lets say I want to play track 7 in a play list of 7?
Thanks in advance!
Voetsjoeba
August 4th, 2004, 04:12 AM
What do you mean paths? > The path to the XML file, the paths of the mp3's inside the XML file, and the paths inside the FLA.
The songs in the xml file or the xml file itself? > Both.
How can I change the target url of the xml file? > In the ActionScript, where it loads the XML (at the bottom).
Also does it matter that the player is inside an MC? > You must make sure that you pass along the right movieclips to the class then. You'll notice that in the code, right above the XML part, there is a list of movieclips. Make sure you have the correct paths there.
Voetsjoeba
August 4th, 2004, 04:16 AM
I was wondering, is there a way to play a particular track by hard coding it in a button? Lets say I want to play track 7 in a play list of 7?
Thanks in advance! Replace the next prototype by this one, and then you can use it to play a specific song by targetting the instance of the class, 'player' and executing the next method, passing along the number you want:
player.next(7);
mp3Player.prototype.next = function(nr) {
this.sound.stop();
if(nr){
this.songs.index = nr;
} else {
this.songs.index++;
if (this.songs.index>this.songs.length-1) {
this.songs.index = 0;
}
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();
};
paddy.
August 4th, 2004, 07:45 AM
> The path to the XML file, the paths of the mp3's inside the XML file, and the paths inside the FLA.Do the mp3's themselves have to be online or can I run a test with the ones on my hard drive? I've only got two of them online currently.
> In the ActionScript, where it loads the XML (at the bottom).Which bit? Can you indicate where?
XMLRetrieve = new XML();
XMLRetrieve.ignoreWhite = true;
XMLRetrieve.load("onlineplaylist.xml (http://www.freewebs.com/showcasesite/onlineplaylist.xml)"); <--Here?
XMLRetrieve.onLoad = function() {
for (var j = 0; j<this.firstChild.childNodes.length; j++) {
songsArray.push({title:this.firstChild.childNodes[j].attributes.title, artist:this.firstChild.childNodes[j].attributes.artist, url:this.firstChild.childNodes (http://www.kirupaforum.com/forums/this.firstChild.childNodes)[j].firstChild.nodeValue});
}
player = new mp3Player(songsArray, playerInterface, 1);
};
You must make sure that you pass along the right movieclips to the class then. You'll notice that in the code, right above the XML part, there is a list of movieclips. Make sure you have the correct paths there.If the whole player is inside a single MC do I have to change anything?:puzzled:
Voetsjoeba
August 4th, 2004, 08:02 AM
Do the mp3's themselves have to be online or can I run a test with the ones on my hard drive? I've only got two of them online currently.You can test it with local sound files, but the sound will be loaded immediately then because it's already "loaded" on your hd.
Which bit? Can you indicate where?
XMLRetrieve = new XML();
XMLRetrieve.ignoreWhite = true;
XMLRetrieve.load("onlineplaylist.xml (http://www.freewebs.com/showcasesite/onlineplaylist.xml)"); <--Here?
XMLRetrieve.onLoad = function() {
for (var j = 0; j<this.firstChild.childNodes.length; j++) {
songsArray.push({title:this.firstChild.childNodes[j].attributes.title, artist:this.firstChild.childNodes[j].attributes.artist, url:this.firstChild.childNodes (http://www.kirupaforum.com/forums/this.firstChild.childNodes)[j].firstChild.nodeValue});
}
player = new mp3Player(songsArray, playerInterface, 1);
};Yup.
If the whole player is inside a single MC do I have to change anything?:puzzled:
You must make sure that you pass along the right movieclips to the class then. You'll notice that in the code, right above the XML part, there is a list of movieclips. Make sure you have the correct paths there.
paddy.
August 4th, 2004, 08:55 AM
It stil says:
Error opening URL "file:///C|/My%20Documents/undefined" in the error panel.
Voetsjoeba
August 4th, 2004, 09:22 AM
Can you send me your files ?
tonygarcia
August 4th, 2004, 10:07 AM
I know this may be asking to much of you.. I downloaded the streaming mx 2004 version i was wondering if there a way to display time remaining? ..
I know in your streaming version, in the xml file you must specify how long the song is, can you display that data?
...again I know you've helped many people by sharing this file and if you don't respond I would understand.. How can I modify the code so that when a song is playing it can import the album's cover art (.jpg file)? Any respond to would be greatly appreciated
paddy.
August 4th, 2004, 10:27 AM
Here's a zip of the fla and the playlist xml, Voets.
www.freewebs.com/shocasesite/ZipforVoetsjoeba.zip (http://www.freewebs.com/shocasesite/ZipforVoetsjoeba.zip)
Voetsjoeba
August 4th, 2004, 02:19 PM
When I open the zip it tells me that "The archive is not valid" :/
paddy.
August 4th, 2004, 02:21 PM
I give up. Maybe I'm just not meant to have an mp3 player on my site. I'll just use the method I used before where the songs are in the fla and there are buttons for each track. Thanks anyway voets.
Voetsjoeba
August 4th, 2004, 02:58 PM
Aw man, don't give up ! Just recreate that zip, I'll be delighted to help, but I can't do much with a ZIP that's corrupt !
plantain_tart
August 4th, 2004, 08:46 PM
Replace the next prototype by this one, and then you can use it to play a specific song by targetting the instance of the class, 'player' and executing the next method, passing along the number you want:
player.next(7);
mp3Player.prototype.next = function(nr) {
this.sound.stop();
if(nr){
this.songs.index = nr;
} else {
this.songs.index++;
if (this.songs.index>this.songs.length-1) {
this.songs.index = 0;
}
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();
};
http://www.afrotechmods.com/cheap/arnoldpad/works.jpg
THANKS MAN!
tonygarcia
August 4th, 2004, 10:24 PM
plantain_tart,
tired out the code... "it verks" just wanted to say thanks for posting it.. this is truly one of the best mp3 players i've seen on the net.. BIG BIG PROPS Voetsjoeba!!
is there any way to display the time remaining??? ( example: 2:31 )
thanks in advance...
Voetsjoeba
August 5th, 2004, 03:42 AM
Time remaining eh ? Yeah that should be possible. Lemme look into that. Isn't there the status bar to indicate how much of the song there is to play ?
tonygarcia
August 5th, 2004, 08:44 AM
Time remaining eh ? Yeah that should be possible. Lemme look into that. Isn't there the status bar to indicate how much of the song there is to play ?
There is a status bar... I guess i just am asking for too much.. i do appericate you sharing this file, please don't think i'm taking that for granted.
http://www.xplodingplastix.com/ (click on music) This is another cool mp3 player ... that loads the album cover and displays time remaining.
Your player does have a status bar w/ a slider option (COOL) xplodingplastix.com's player one does not.
Appericate all you've done Voetsjoeba, thank you.
paddy.
August 5th, 2004, 10:14 AM
Aw man, don't give up ! Just recreate that zip, I'll be delighted to help, but I can't do much with a ZIP that's corrupt !
What did you use to open it? I tried WinZip and WinRar and it worked perfectly in both.
Try this instead:
http://www.freewebs.com/showcasesite/mp3fla.zip
or again:
http://www.freewebs.com/showcasesite/ZipforVoetsjoeba.zip
I hope one of these works.
Voetsjoeba
August 5th, 2004, 10:33 AM
Heh, pretty simple why - you have an error in your XML file. There are these -'s in them that cause errors. Here's what it should look like:
<?xml version="1.0" encoding="iso-8859-1" ?>
<playlist>
<song title="You're So Last Summer" artist="Taking Back Sunday">
<![CDATA[C:\My Documents\Mp\3Taking Back Sunday (Tell All Your Friends 09) - You're So Last Summer.mp3]]>
</song>
</playlist>
And, there's an error in the path to the mp3 - My Documents\Mp\3... should be My Documents\Mp3\....
paddy.
August 5th, 2004, 11:04 AM
Thanks Voets. I'm very greatful for your time. You must get so bored of answering questions for n00bs like me.
Nick Toye
August 12th, 2004, 07:50 AM
Hi,
Good idea with the jukebox, as far as the XML file is concerned, I have a question.
<song title="No Holly For Miss Quinn" artist="Enya"><![CDATA[http://www.kieto.com/noholly.mp3]]></song>
Do I put the link to the file in the CDATA part? I'm a little confused.
Cheers
Voetsjoeba
August 12th, 2004, 11:07 AM
Yeah, the link goes inbetween <![CDATA[ and ]]>. The whole CDATA thing is to ensure that the text inbetween doesn't get parsed by the XML parser. For regular URLs this shouldn't be a problem, but there are some weird URLs out there. So to be sure, I used this.
Nick Toye
August 12th, 2004, 11:13 AM
Cheers, when I have finished it I will show you how I am using it, do you want credit for it?
Voetsjoeba
August 12th, 2004, 11:26 AM
Whatever you like. If you feel like doing so, then do so, if you don't, then don't.
Nick Toye
August 12th, 2004, 06:03 PM
Ok, thanks.
A few questions though, if you don't mind, but I want to be able to stream the mp3's that I play, because I would like the music to start as soon as the site loads, but I have my jukebox in its own MC. So my preloader loads in all the movie, but it doesn't load the external music.
Any ideas
Nick Toye
August 12th, 2004, 06:38 PM
Help whats going on here?
Its the streaming version.
http://www.thepearl.co.uk/test.htm
Voetsjoeba
August 13th, 2004, 03:13 AM
Wow, this is weird. All that flashing of the titles. Make sure that the paths you provide in the code are correct. Because you've placed it in another movieclip, you've gotta double check your paths (at the bottom of the code, above the XML part).
Nick Toye
August 13th, 2004, 03:44 AM
// mp3Player class
_soundbuftime = 1;
mp3Player = function (songs, interF, reservedDepth) {
if (songs != undefined && interF != undefined && reservedDepth != undefined && typeof songs == "object" && typeof interF == "object" && typeof reservedDepth == "number") {
this.sound = new Object(new Sound(_root));
this.songs = songs;
this.player = interF;
this.positionDump = 0;
this.songs.index = 0;
this.sound.paused = false;
this.sound.stopped = false;
this.curVolume = 100;
this.player.songInfo.html = true;
this.player.songInfo.condenseWhite = true;
this.player.songInfo.autoSize = "center";
this.safeDepth = reservedDepth-1;
this.player.progressIndicator.offset = this.player.progressIndicator._x;
this.loadHandler = _root.createEmptyMovieClip("LH", ++this.safeDepth);
this.progressHandler = _root.createEmptyMovieClip("PH", ++this.safeDepth);
this.volumeHandler = _root.createEmptyMovieClip("VH", this.safeDepth+3);
this.volumeSlideHandler = _root.createEmptyMovieClip("VSH", ++this.safeDepth+4);
// Start functions ----------------------------------------------------------------------------------------------------
this.setRollOver(1);
this.setControls();
this.setInitialVolume(100);
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.showLoaded();
this.showSongInfo();
this.indicateStatus(1);
this.indicateProgress();
// this.enableDrag();
//
} else {
trace("Invalid parameter(s) specified.");
}
};
mp3Player.prototype.stopProgressIndicator = function() {
delete this.progressHandler.onEnterFrame;
};
mp3Player.prototype.resetProgressIndicator = function() {
delete this.progressHandler.onEnterFrame;
this.player.progressIndicator._x = this.player.progressIndicator.offset;
};
mp3Player.prototype.disableDrag = function() {
delete this.player.progressIndicator.onPress;
delete this.player.progressIndicator.onRelease;
delete this.player.progressIndicator.onReleaseOutside;
};
mp3Player.prototype.indicateStatus = function(stat) {
var tar;
stat>0 ? tar=_root.jukeBox.playBtn : stat+1 ? tar=_root.jukeBox.pauseBtn : this.player.statusIndicator.easeX(tar._x);
};
mp3Player.prototype.showSongInfo = function() {
var artist = this.songs[this.songs.index].artist;
var title = this.songs[this.songs.index].title;
var output = artist+" - "+title;
this.player.songInfo.htmlText = output;
};
mp3Player.prototype.next = function() {
this.sound.stop();
this.songs.index++;
if (this.songs.index>this.songs.length-1) {
this.songs.index = 0;
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();
};
mp3Player.prototype.setInitialVolume = function(x) {
var ref = this;
var tgt = x/100*this.player.volumeHeight;
var vitgt = this.player.volumeBar._y-tgt;
this.player.volumeNR.text = 100;
this.sound.setVolume(x);
this.curVolume = x;
this.volumeHandler.onEnterFrame = function() {
ref.player.volumeIndicator._y = vitgt-(vitgt-ref.player.volumeIndicator._y)/1.2;
ref.player.volumeBar._height = tgt-(tgt-ref.player.volumeBar._height)/1.2;
if (ref.player.volumeIndicator._y>vitgt-1 && ref.player.volumeIndicator._y<vitgt+1 && ref.player.volumeBar._height>tgt-1 && ref.player.volumeBar._height<tgt+1) {
delete this.onEnterFrame;
}
};
};
mp3Player.prototype.setVolumeDrag = function(x) {
if (x>100) {
x = 100;
}
if (x<0) {
x = 0;
}
var ref = this;
var tgt = x/100*this.player.volumeHeight;
this.sound.setVolume(x);
this.curVolume = x;
this.player.volumeNR.text = Math.round(x);
this.volumeHandler.onEnterFrame = function() {
ref.player.volumeBar._height = tgt-(tgt-ref.player.volumeBar._height)/1.2;
if (ref.player.volumeBar._height>tgt-1 && ref.player.volumeBar._height<tgt+1) {
delete this.onEnterFrame;
}
};
};
mp3Player.prototype.dragVolumeSlider = function() {
var ref = this;
var maxH = this.player.volumeHeight;
var vi = this.player.volumeIndicator;
var vb = this.player.volumeBar;
this.volumeSlideHandler.onEnterFrame = function() {
conv = {x:0, y:_root._ymouse};
globalToLocal(conv);
this._y = conv.y;
if (conv.y>=vb._y-maxH-1 && conv.y<=vb._y+1) {
vi._y = conv.y;
ref.setVolumeDrag((vb._y-conv.y)*100/maxH);
}
};
};
mp3Player.prototype.previous = function() {
this.sound.stop();
this.songs.index--;
if (this.songs.index<0) {
this.songs.index = this.songs.length-1;
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();
};
mp3Player.prototype.indicateProgress = function() {
var ref = this;
this.progressHandler.onEnterFrame = function() {
var played = ref.sound.position;
var total = ref.songs[ref.songs.index].duration;
ref.player.progressIndicator._x = ref.player.progressIndicator.offset+((played/total)*ref.player.loadWidth);
if (played>=total) {
delete this.onEnterFrame;
ref.resetProgressIndicator();
ref.next();
}
};
};
mp3Player.prototype.showLoaded = function() {
var ref = this;
this.loadHandler.onEnterFrame = function() {
var loaded = ref.sound.getBytesLoaded();
var total = ref.songs[ref.songs.index].totalbytes;
ref.player.loadBar._width = (loaded/total)*ref.player.loadWidth;
if (loaded == total) {
delete this.onEnterFrame;
}
};
};
mp3Player.prototype.setControls = function() {
var ref = this;
var playB = _root.jukeBox.playBtn;
var prevB = _root.jukeBox.previousBtn;
var nextB = _root.jukeBox.nextBtn;
var pauseB = _root.jukeBox.pauseBtn;
pauseB.onRelease = function() {
if (!ref.sound.stopped) {
ref.sound.stop();
ref.indicateStatus(0);
ref.sound.paused = true;
ref.sound.stopped = false;
ref.sound.pausedPosition = ref.sound.position;
ref.stopProgressIndicator();
}
};
stopB.onRelease = function() {
ref.sound.stop();
ref.indicateStatus(-1);
ref.sound.stopped = true;
ref.sound.paused = false;
ref.sound.pausedPosition = 0;
ref.resetProgressIndicator();
};
playB.onRelease = function() {
if (ref.sound.stopped) {
ref.indicateProgress();
ref.indicateStatus(1);
ref.sound.start(0, 1);
ref.sound.stopped = false;
} else if (ref.sound.paused) {
ref.indicateProgress();
ref.indicateStatus(1);
ref.sound.start(ref.sound.pausedPosition/1000, 1);
ref.sound.paused = false;
}
};
nextB.onRelease = function() {
ref.resetProgressIndicator();
ref.next();
};
prevB.onRelease = function() {
ref.resetProgressIndicator();
ref.previous();
};
};
mp3Player.prototype.enableDrag = function() {
var ref = this;
this.player.progressIndicator.onPress = function() {
ref.sound.stop();
ref.stopProgressIndicator();
ref.indicateStatus(0);
ref.sound.paused = true;
ref.sound.stopped = false;
total = ref.songs[ref.songs.index].duration;
this.onEnterFrame = function() {
conv = {x:_root._xmouse};
globalToLocal(conv);
this._x = conv.x;
if (conv.x<ref.player.loadBar._x) {
this._x = ref.player.loadBar._x;
}
if (conv.x>ref.player.loadBar._x+ref.player.loadWidth) {
this._x = ref.player.loadBar._x+ref.player.loadWidth;
}
var percent = ((this._x-ref.player.loadBar._x)/ref.player.loadWidth)*100;
this.newPosition = (percent*total)/100;
};
};
this.player.progressIndicator.onRelease = this.player.progressIndicator.onReleaseOutside=fun ction () {
if (this.newPosition>=ref.songs[ref.songs.index].duration) {
this.newPosition = ref.songs[ref.songs.index].duration-1;
}
delete this.onEnterFrame;
ref.sound.start(ref.player.progressIndicator.newPo sition/1000, 1);
ref.sound.paused = false;
ref.sound.stopped = false;
ref.indicateStatus(1);
ref.indicateProgress();
};
};
//prototypes
MovieClip.prototype.fadeIn = function() {
this.onEnterFrame = function() {
this._alpha += 2;
this._alpha>=100 ? delete this.onEnterFrame : null;
};
};
MovieClip.prototype.fadeOut = function() {
this.onEnterFrame = function() {
this._alpha -= 2;
this._alpha<=30 ? delete this.onEnterFrame : null;
};
};
// creation of mp3Player class instance and junk
songsArray = new Array();
playerInterface = new Object();
playerInterface.playButton = _root.jukeBox.playBtn;
playerInterface.pauseButton = _root.jukeBox.pauseBtn;
playerInterface.previousButton = _root.jukeBox.previousBtn;
playerInterface.nextButton = _root.jukeBox.nextBtn;
playerInterface.loadBar = _root.jukeBox.loadbar;
playerInterface.loadWidth = 165;
playerInterface.progressIndicator = this.proIndic;
playerInterface.statusIndicator = this.statusIndic;
playerInterface.songInfo = this.songInfo;
playerInterface.volumeBar = this.volumeBar;
playerInterface.volumeNR = this.volumeNR;
playerInterface.volumeIndicator = this.volumeIndic;
playerInterface.volumeHeight = 60;
//---------------------------------------------------
XMLRetrieve = new XML();
XMLRetrieve.ignoreWhite = true;
XMLRetrieve.load("onlineplaylist.xml");
XMLRetrieve.onLoad = function() {
for (var j = 0; j<this.firstChild.childNodes.length; j++) {
/* Handle duration and convert to milliseconds */
dur = this.firstChild.childNodes[j].attributes.duration;
dblPnt = dur.indexOf(":");
mins = Number(dur.substr(0, dblPnt));
sec = Number(dur.substr(dblPnt+1, dur.length));
ms = ((mins*60)+sec)*1000;
/* Handle filesize and convert to bytes */
songsArray.push({title:this.firstChild.childNodes[j].attributes.title, url:this.firstChild.childNodes[j].firstChild.nodeValue});
}
player = new mp3Player(songsArray, playerInterface, 1);
};
Thanks
Voetsjoeba
August 13th, 2004, 04:03 AM
I know the code, it's your FLA I'd have to see to know the structure.
Nick Toye
August 13th, 2004, 04:21 AM
here is a completely stripped down version of the fla.
Thanks
Voetsjoeba
August 13th, 2004, 05:09 AM
Can I see the playlist too ?
Nick Toye
August 13th, 2004, 05:12 AM
<?xml version="1.0" encoding="iso-8859-1"?>
<playlist>
<song title="Lovers Tale"><![CDATA[loverstale.mp3]]></song>
<song title="Hungry"><![CDATA[hungry.mp3]]></song>
<song title="Hurricane"><![CDATA[hurricane.mp3]]></song>
<song title="Everybody's Girl"><![CDATA[everybodysgirl.mp3]]></song>
<song title="Vale of Avoca"><![CDATA[valeofavoca.mp3]]></song>
<song title="Amelie"><![CDATA[amelie.mp3]]></song>
<song title="Rolling Dice"><![CDATA[rollingdice.mp3]]></song>
<song title="You"><![CDATA[you.mp3]]></song>
<song title="Then Came The Rain"><![CDATA[thencametherain.mp3]]></song>
</playlist>
billystar
August 13th, 2004, 05:48 AM
hi Voets, great player, trying to get my head around the coding...
for my needs, id like the player to appear but only for a track to start streaming if the user requests it by pressing play...save bandwith in case they dont want music...
is this possible?
Voetsjoeba
August 13th, 2004, 07:23 AM
This answer has been asked before - what you need to do is to execute the onRelease handler of the stop button right after the player has initialized. I've posted this before, and in the comments on my site too I think.
Nick Toye
August 13th, 2004, 07:02 PM
Voetsjoeba:
Is that answer for me?
paddy.
August 14th, 2004, 02:21 PM
Hey Voets. Is there a way to make the track loop continuously without gaps? In effect turning the MP3 player into a loop selector.
Voetsjoeba
August 14th, 2004, 02:24 PM
Oh .. that's really not what it's made for FG. That would require major changes to the code.
paddy.
August 14th, 2004, 02:27 PM
That's what I thought. Thx anyway.
Nick Toye
August 14th, 2004, 08:31 PM
Voetsjoeba:
Have you managed to see why my movie was behaving strangely?
Voetsjoeba
August 15th, 2004, 05:05 AM
Nick - I've been very busy lately and haven't really had the time to look at it thoroughly, though I will when I find the time.
Voetsjoeba
August 15th, 2004, 05:26 AM
Here's your error. This is what it should be:
songsArray.push({title:this.firstChild.childNodes[j].attributes.title, artist:this.firstChild.childNodes[j].attributes.artist, url:this.firstChild.childNodes[j].firstChild.nodeValue, duration:ms, totalbytes:Number(this.firstChild.childNodes[j].attributes.filesize)});
You cut out more than half of that line, cutting away more than half of all the required info causing it to freak.
Nick Toye
August 15th, 2004, 05:42 AM
I changed the code and it still behaves strangely. Could there be anything else?
Voetsjoeba
August 15th, 2004, 05:51 AM
Not that I could see from your fla.
Nick Toye
August 15th, 2004, 05:54 AM
Oh right, what about the XML file? Could it just be a bug?
Voetsjoeba
August 15th, 2004, 06:09 AM
Oh right, I changed something else too - your songbox being a graphic ! Why are you changing everything ?
Nick Toye
August 15th, 2004, 06:13 AM
Hi, i'm not doing too many changes, but there is alot of the code that I don't need. like a stop button and volume control, not too bothered about the button animations either. The client wants it fairly simple to use.
So does the problem lie with the songbox being a graphic?
Sorry to be a pain, I really appreciate the help.
Nick Toye
August 15th, 2004, 06:16 AM
I think it may be the XML file, because when I copy your code into my fla, and then run it, it works ok, then when I change the xml part of the code to load in my xml file it starts to behave strangely. On your XML I don't need to have artist, because it is all the same artist, but do I need to have the duration and filesize?
Voetsjoeba
August 15th, 2004, 07:07 AM
Of course ! You need everything that my playlist has ! Now I see - I indeed used my own playlist because your paths to your mp3s were relative so I couldn't use it !
Don't forget to use the absolute bytesize "on disk" for the filesize.
Nick Toye
August 15th, 2004, 07:24 AM
So I can discard the artist tag, but keep the other two (filesize and duration)
Also what do you mean bytesize on disk, where is that?
Voetsjoeba
August 15th, 2004, 07:33 AM
No you can not discard the artist tag, unless you type it in manually in the line I corrected.
Bytesize on disk you can see by rightclicking the file, and look at the "Size on Disk". Next to it is the size in bytes. Copy that number, without .'s or ,'s, so not 6.123.568 for example, but 6123568.
Nick Toye
August 15th, 2004, 07:40 AM
Ok, its stopped behaving crazy now, but for some reason its not playing any tunes, Also can I slim down the code, because there are whole chunks for the volume control which I am not including on the player.
Voetsjoeba
August 15th, 2004, 08:02 AM
Double check the URLs to the songs in your playlist. And yeah, there's code you can leave out, though make sure to get it working before you start cutting out code.
Nick Toye
August 15th, 2004, 08:05 AM
Well the streaming is working, because when I run it live on the net the loadbar works as if its loading in the file and then nothing happens.
Try it:
http://www.thepearl.co.uk/test.htm
Voetsjoeba
August 15th, 2004, 08:07 AM
Pff. Can't you just give me the entire fla so I can fix it once and for all ?
Nick Toye
August 15th, 2004, 08:13 AM
ok whats your email address, becuase it may not fit on this forum.
Voetsjoeba
August 15th, 2004, 08:27 AM
voetsjoeba [at] gmail [dot] com
deadlyrhetoric
August 15th, 2004, 11:34 AM
Hey, Voetsjoeba...I'm currently using your streaming mp3 player for MX 2004, and I'm having a similar problem to Flash Gordon, except that all of my path names are correct, and I haven't found any errors in my XML, I was wondering if you could help me out here...my fla: http://www.biggerbusiness.biz/mainmenu.fla , and my xml, http://www.biggerbusiness.biz/onlineplaylist_stream.xml
Thanks in advance for your time and patience
Voetsjoeba
August 15th, 2004, 12:34 PM
First thing I noticed is that there is an error in your XML file:
duration"5:49"
should be
duration="5:49"
auranix
August 22nd, 2004, 04:02 AM
Oh .. that's really not what it's made for FG. That would require major changes to the code.
Dang, I was trying to find a loop player. You say major changes, how major would it have to be. Massive? Do you, or anyone here, know any place of a loop selector with a play/stop function and volume slider? Or a tutorial?
bandsitebuilder
April 2nd, 2005, 07:13 PM
voetsjoeba-
great player.. i learned a lot from it..
if you don't mind i have a question for you.. I'm looking to conceal the location of the mp3's and possibly keep them outside of the web directory..
in the .xml file i have a unique code for each url
ex.
<song title="Road Of Diamonds " artist="">
<![CDATA[blakeian-642e92efb79421734881b53e1e1b18b6]]></song>
the .fla calls the php file with the get variable for the mp3.. instead of calling the mp3 directly
this.sound.loadSound('testmp3.php?sid=' + this.songs[this.songs.index].url + '.mp3', false);
the player can be seen at http://bandsitebuilder.net/misc/music_player.html
bandsitebuilder
April 2nd, 2005, 07:15 PM
the player works in
IE on PC
Safari on Mac
FireFox on Mac
Doesnt work in:
IE on Mac
AOL on Mac
My question for you... do you have any idea as to how to make it more cross browser/platform friendly?
thanks,
peter at bandsitebuilder DOT (NO SPAM) com
Bahnhof
October 27th, 2005, 12:18 AM
What would be the code for a button to select a specific track from the xml file?
Bahnhof
October 27th, 2005, 12:45 AM
er, nvm, i found you ansered this already:
player.next(7); and such.
I'm wondering, I have code from another mp3 player, its a bit different but you think you can look at it and maybe help me figure out how to do the same thing?
here's the player -> http://delerium.ca/_Flash_Mp3_Player.zip [57kb] includes xml links to online tracks as well.
Thanks in advance, I can tell on here you're get rather busy. Hope you can shed some light at least. :)
Bahnhof
October 27th, 2005, 12:58 AM
i found that
on (release) {
delete _root.mp3container.pausepos;
_root.mp3container.current_song == _root.mp3container.song_total ? _root.mp3container.current_song = 1: _root.mp3container.current_song++;
_root.mp3container.MySound.stop();
_root.mp3container.playSong();
}
will remotely play the next track.. changing paths, heh, thats all i can do.
Bahnhof
October 27th, 2005, 01:12 AM
ha! nvm, i finally figured it out.
it took me posting all over the place with not one reply. (not here tho, i JUST posted today :P ) and i finally figured it out!
Thanks anyways!
Bahnhof
October 27th, 2005, 01:14 AM
um, for anyone who needs to know i just changed the ++ to a number. is seems so easy... why did it take me so long.
Bahnhof
October 27th, 2005, 01:39 AM
however, if you know how to call a specific track off the xml by using its filename,
be sure to let me know ;)
Slazareth
January 3rd, 2006, 12:41 PM
Links are dead?
my3brs
January 13th, 2006, 07:02 PM
The link doesn't work.
dripster82
January 14th, 2006, 05:33 PM
Hi,
http://www.design-lobby.com/lordpaul/index.html
I created a Flash Mp3 Player can you coment on it please.
it uses a PHP backend.
The PHP detects what folders there are and what mp3s that are in the folders.
When you choose a folder/Album the PHP discovers the ID3 Tags to pass to the player (hence the blanks and missing data when ID3 tags are not filled in).
Comments will be grateful.
Regards,
Dripster82
sk8krog
January 15th, 2006, 02:48 AM
I'd open up a new thread if you want critiques on your personal one, this looks like Voets's ;)
OrchardofMarble
March 15th, 2006, 04:09 PM
The link doesn't work.
chrisisjargon
April 16th, 2006, 07:28 PM
great mp3 player by the way, what do i need to do to get the each track to play after each other ie once track 1 has finished move on and play track 2 automaticly without having to click the next track button.
thanks in advance
chrisisjargon
April 19th, 2006, 11:44 AM
anyone know how :look:
simplistik
April 19th, 2006, 12:34 PM
anyone know how :look:
yea... get version 3
http://voetsjoeba.com/lab.php?i=16
certainfate
April 25th, 2006, 10:27 AM
yea... get version 3
http://voetsjoeba.com/lab.php?i=16
It seems the files are not there anymore. Does anyone have the flash files for this mp3 player. I would love to check it out.
Thanks.
simplistik
April 25th, 2006, 02:02 PM
It seems the files are not there anymore. Does anyone have the flash files for this mp3 player. I would love to check it out.
Thanks.
He's changing servers you'll have to be patient and wait until he's done.
Phenex
April 25th, 2006, 02:07 PM
Uuuh... Please don't think of this as advertising... But I made a media player using a little different approach than his.
It's called BOOMCAST (I recently got to know that another company has a media player by the same name and I will change it in a coupla days)
- It uses an XML driven playlist.
- Displays full buffer load, play head movement etc. CORRECTLY exactly like the functionality of WMP plus you can scrub the playhead around and it'll start from the playhead's position.
- Displays detailed song info and album art.
Currently working on much much more features! :thumb:
How to view it?
Go to: http://www.1am-mediaforums.com and in the site banner (which is flash 4 :P) click on "Launch BOOMCAST".
Just something I'd like to share in case it seems to be educative enough. If you think it's crap, disregard anything I have said. :)
certainfate
April 25th, 2006, 02:10 PM
He's changing servers you'll have to be patient and wait until he's done.
Cool... I did not know that. I just went to his site and saw the page saying that.
I can be very patient...
Thanks.
simplistik
April 25th, 2006, 02:17 PM
@phoenix, that's nice and all but 2 things... your fonts aren't embeded and it's not open source.
simplistik
April 25th, 2006, 02:18 PM
Cool... I did not know that. I just went to his site and saw the page saying that.
I can be very patient...
Thanks.
:lol: that's good to know too cause it may be a tad longer I know he's lookin to redesign his site too ;) :lol: so the link may change.
Phenex
April 25th, 2006, 02:26 PM
@phoenix, that's nice and all but 2 things... your fonts aren't embeded and it's not open source.
:P It was never meant to be open source.
Fonts are not embedded? Could be considering it's still not complete. But I remember checking that that they were embedded. Musta slipped by. Will check it again. Thanks :)
simplistik
April 25th, 2006, 04:13 PM
:P It was never meant to be open source.
Then what's the advantage of you tryin to "promote" it as an alternate solution, where these ppl are trying to aquire voets open source xml, mp3 player ;)... which btw is extremely awesome :D :thumb2:
Phenex
April 25th, 2006, 04:31 PM
Dang... I never noticed his player was OS...
Plus I never said it was an alternate "solution"... Just another method I used to have the same functionality.
YoungNastyMan
April 30th, 2006, 09:00 PM
Hello. Well, I too want to thank Voets for his sweet mp3 player. However, I'm trying to learn and incorporate more MySql lately into everything I do. I've been doing a lot of applications where I start with a MySql database - use PHP to pull the info into the form of an XML - then load the XML into flash.
Personally, I like doing it better this way (for organization reasons and what not).
Anyhow, I would like to see how to get PHP to pull information from MySql to form an XML that looks just like Voet's onlineplaylist_stream.xml.
Anyone know how to do this?
simplistik
April 30th, 2006, 10:21 PM
Just give the XML a PHP, and use proper coding to connect to it as you would any other type of database app. On his site you'll notice that you're able to do that according to his desc.
http://www.voetsjoeba.com/tempsite/lab/12/xml-mp3-player-v3
evildrummer
May 1st, 2006, 10:10 AM
Could someone please tell me where i can find out how to make a player on flash because i need one for a website, and I dont know how to make a decent one:(
simplistik
May 1st, 2006, 10:23 AM
Could someone please tell me where i can find out how to make a player on flash because i need one for a website, and I dont know how to make a decent one:(
http://www.kennybellew.com/tutorial/ - best sound tutorial on the net, but you could just download voets from his site or there is another one around here somewhere that looks like an iPod which is pretty kewl too.
evildrummer
May 1st, 2006, 10:59 AM
ok, Thank you alot.
williby27
June 17th, 2006, 03:21 AM
hey, i've heard how great this mp3 player is but unfortunately for me the download links wont work for me on this thread.
I found my way onto his site and i've downloaded the zip files for the xml player version 3 - but windows says its corrupted!
Any other links to download it?
lbeetles
November 29th, 2006, 11:09 AM
I have added a Volume Slider bar to the mp3 v3 player. There probably is a better way but it works.
http://members.lycos.co.uk/lbeetles/mp3v3_vS.zip
(http://lbeetles.awardspace.com/flash/mp3v3_vS.zi_)
skyrow9189
February 9th, 2007, 02:57 PM
hey, can someone post the fla up again or one similiar:hat:
Miroku_87
February 25th, 2009, 07:06 PM
Oh, that's too bad I'm arriving this late.
Isn't there the files anymore somewhere?
I really need them PLIIIIIIIIIZ >_<
Powered by vBulletin® Version 4.1.10 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.