How to play MP3 sounds using an XML list

Hi,
I’m trying to modify this MP3 player tutorial, by Republic of code. Instead of playing and stopping sounds on button clicks, I have a timeline and I need a function to play Track 1.mp3 on first frame, then when on next frame it plays Track2.mp3 and stops the first one. The user also needs to be able to navigate backwards as well.

I’m new to AS3, and the first time I made an app, I had to turn sound on and off for every frame of the timeline, which is a real pain!

Instead of the buttons (below), perhaps there’s a way of setting the frame number with the track number (starting at 1) ?

I also can’t figure out how to get Track 1 to play straight away, rather than you having to click the play button to start it playing…

In my root folder is a playlist.xml and a folder called ‘audio’ with 3 mp3 tracks.

Here’s the link, and the code below. There is a handy source file at the bottom of the page.

Thanks!

http://www.republicofcode.com/tutorials/flash/as3musicplayer/6.php

var my_songs:XMLList;
var my_total:Number;

var my_sound:Sound;
var my_channel:SoundChannel;

var current_song:Number = 0;

var song_position:Number;
var song_paused:Boolean;

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {
    var myXML:XML = new XML(e.target.data);

    my_songs = myXML.SONG;
    my_total = my_songs.length();

    //playSong(0);

    myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
    myXMLLoader = null;

}

function playSong(mySong:Number):void {
    var myTitle = my_songs[mySong].@TITLE;
    var myArtist = my_songs[mySong].@ARTIST;
    var myURL = my_songs[mySong].@URL;

    title_txt.text = myTitle;
    artist_txt.text = myArtist;

    if (my_channel) {
        my_channel.stop();
        my_channel.removeEventListener(Event.SOUND_COMPLETE, onNext);
    }

    my_sound = new Sound();
    my_sound.load(new URLRequest(myURL));
    my_channel = my_sound.play();
    my_channel.addEventListener(Event.SOUND_COMPLETE, onNext);
}


next_btn.addEventListener(MouseEvent.CLICK, onNext);
function onNext(e:Event):void {
    current_song++;
    if (current_song>=my_total) {
        current_song=0;
    }
    playSong(current_song);
}
prev_btn.addEventListener(MouseEvent.CLICK, onPrev);
function onPrev(e:MouseEvent):void {
    current_song--;
    if (current_song<0) {
        current_song = my_total-1;
    }
    playSong(current_song);
}

pause_btn.addEventListener(MouseEvent.CLICK, onPause);
function onPause(e:MouseEvent):void {
    if (my_channel) {
        song_position = my_channel.position;
        my_channel.stop();
        song_paused=true;
    }
}

play_btn.addEventListener(MouseEvent.CLICK, onPlay);
function onPlay(e:MouseEvent):void {
    if (song_paused) {
        my_channel = my_sound.play(song_position);
        song_paused=false;
    } else if (!my_channel) {
        playSong(current_song);
    }
}