Hi,
i have created a mp3 player using AS 2.0 that controls the playlist using
xml .Everything is working properly . My only issue is that i want the music
to stream instead of waiting until the song is fully downloaded to play .
This player works fine locally but in browser it creates problem when
streaming from server . I have tried a lot ...have searched everywhere
...can u please tell me how to add the streaming / buffering functionality
to this player (same as you see in youtube ....want the same streaming
functionality) ..

*Here's my whole code :*

stop();
songtime._alpha = 0;
var songs:Array = new Array();
var curtrack:Number = 0;
var playingsong:Sound = new Sound();
if (_root.playlist == undefined || _root.playlist == "") {
    _root.playlist = "playlist.xml";
}
var playlistXml:XML = new XML();
playlistXml.ignoreWhite = true;
playlistXml.load(_root.playlist);
playlistXml.onLoad = function() {
    loadSongs();
    loadplaylistbox();
    playpause.gotoAndStop(2);
    playpause.playpausebutton.onPress = function() {
        playpause.gotoAndStop(1);
        loadSong(curtrack);
        songtime._alpha = 100;
    };
    if (_root.autostart == "false") {
        toggleplaypause();
    }
};
volumebar.volumeslider.startDrag(true,0,volumebar.volumeslider._y,30,volumebar.volumeslider._y);

function loadSongs() {

    for (songIndex=0;
songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.length;
songIndex++) {
        var songdata:Object = new Object();
        for (songNode=0;
songNode<playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes.length;
songNode++) {
            switch
(playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].nodeName)
{
                case "creator" :
                    songdata.artist =
playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].childNodes[0].nodeValue;
                    break;
                case "title" :
                    songdata.title =
playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].childNodes[0].nodeValue;
                    break;
                case "location" :
                    songdata.location =
playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].childNodes[0].nodeValue;
                    break;
            }
        }
        songs[songIndex] = songdata;


    }
}
function loadSong(track) {
    playingsong = new Sound();
    playingsong.loadSound(songs[track].location,true);
    playingsong.start(0);
    updatevolume();
    playingsong.onSoundComplete = function() {

        playpause.gotoAndStop(2);
        playpause.playpausebutton.onPress = function() {
            playpause.gotoAndStop(1);
            loadSong((curtrack+1)%(songs.length));
        };
    };

    playpause.playpausebutton.onPress = function() {
        toggleplaypause();
    };
    songdisplay.text = songs[track].artist+" - "+songs[track].title;


eval("playlistbox.playlistitemcontainer.playlistitem"+curtrack+".playlistitemhighlight")._alpha
= 4;

eval("playlistbox.playlistitemcontainer.playlistitem"+track+".playlistitemhighlight")._alpha
= 20;
    curtrack = track;

}
function loadplaylistbox() {
    for (songIndex=0;
songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.length;
songIndex++) {

playlistbox.playlistitemcontainer.attachMovie("playlistitem","playlistitem"+songIndex,playlistbox.playlistitemcontainer.getNextHighestDepth(),{_x:0,
_y:15*songIndex});

eval("playlistbox.playlistitemcontainer.playlistitem"+songIndex+".playlistitemtext").text
= songs[songIndex].artist+" - "+songs[songIndex].title;

eval("playlistbox.playlistitemcontainer.playlistitem"+songIndex).songindex =
songIndex;

    }
}
playpause.playpausebutton.onPress = function() {
    toggleplaypause();
};
function toggleplaypause() {
    if (playpause._currentframe == 1) {
    playpause.gotoAndStop(2);
    playpause.curpos = playingsong.position;
    playingsong.stop();
    } else {
    playpause.gotoAndStop(1);
    playingsong.start(playpause.curpos/1000,0);
    }
    playpause.playpausebutton.onPress = function() {
    toggleplaypause();
    };
}
onEnterFrame = function () {
    if (songdisplay.movingright) {
        songdisplay.hscroll -= 10;
        if (songdisplay.hscroll<=0) {
            songdisplay.movingright = false;
        }
    } else {
        songdisplay.hscroll += 10;
        if (songdisplay.hscroll>=songdisplay.maxhscroll) {
            songdisplay.movingright = true;
        }
    }
    if (!draggingslider) {
        progressslider._x =
(playingsong.position/playingsong.duration)*182+86;
        if (progressslider._x == 0) {
            progressslider._x = 86;
        }
    }
    if (draggingplaylistscroller) {
        updateplaylistscroll();
    }
    if (draggingvolmeslider) {
        updatevolume();
    }
    tempsongtime = "";
    if (Math.floor(playingsong.position/60000) == 0) {
        tempsongtime += "00";
    } else {
        tempsongtime += Math.floor(playingsong.position/60000);
    }
    tempsongtime += ":";
    if (Math.floor((playingsong.position/1000)%60)<10) {
        tempsongtime += "0";
    }
    tempsongtime += Math.floor((playingsong.position/1000)%60);
    tempsongtime += "/";
    if (Math.floor(playingsong.duration/60000) == 0) {
        tempsongtime += "0";
    } else {
        tempsongtime += Math.floor(playingsong.duration/60000);
    }
    tempsongtime += ":";
    if (Math.floor((playingsong.duration/1000)%60)<10) {
        tempsongtime += "0";
    }
    tempsongtime += Math.floor((playingsong.duration/1000)%60);
    songtime.text = tempsongtime;
    //trace(Math.floor(playingsong.position/60000));
    //if(Math.floor(playingsong.position/1000)%60)

//songtime.text=Math.floor(playingsong.position/1000)%60+"/"+Math.floor(playingsong.duration/1000)%60;
};
progressslider.onPress = function() {
    draggingslider = true;

progressslider.startDrag(true,86,progressslider._y,263.8,progressslider._y);
};
progressslider.onRelease = progressslider.onReleaseOutside=function () {
    progressslider.stopDrag();

playingsong.start(((progressslider._x-86)/182)*playingsong.duration/1000,0);
    playpause.gotoAndStop(1);
    playpause.playpausebutton.onPress = function() {
        toggleplaypause();
    };
    draggingslider = false;
};
progressbar.onPress = function() {
    playingsong.start(((_xmouse-61)/182)*playingsong.duration/1000,0);
    playpause.gotoAndStop(1);
    playpause.playpausebutton.onPress = function() {
        toggleplaypause();
    };
};
volumebar.onPress = function() {
    draggingvolmeslider = true;

volumebar.volumeslider.startDrag(true,0,volumebar.volumeslider._y,47,volumebar.volumeslider._y);
};
volumebar.onRelease = volumebar.onReleaseOutside=function () {
    draggingvolmeslider = false;
    volumebar.volumeslider.stopDrag();
    updatevolume();
};
function updatevolume() {
    playingsong.setVolume((volumebar.volumeslider._x/47)*100);
}
previoussong.onPress = function() {
    loadprevioussong();
};

function loadprevioussong() {
    var loadtrack = (curtrack-1)%(songs.length);
    if (loadtrack<0) {
        loadtrack = songs.length-1;
    }
    loadSong(loadtrack);
}
nextsong.onPress = function() {
    loadnextsong();
};
function loadnextsong() {
    var loadtrack = (curtrack+1)%(songs.length);
    loadSong(loadtrack);
}
playlistscroller.onPress = function() {
    draggingplaylistscroller = true;
    playlistscroller.startDrag(true,317.5,85,317.5,185);
};
playlistscroller.onRelease = playlistscroller.onReleaseOutside=function () {
    draggingplaylistscroller = false;
    playlistscroller.stopDrag();
};
playlistscrollup.onPress = function() {
    playlistscroller._y = Math.max(85, playlistscroller._y-10);
    updateplaylistscroll();
};
playlistscrolldown.onPress = function() {
    playlistscroller._y = Math.min(185, playlistscroller._y+10);
    updateplaylistscroll();
};
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta:Number) {
    playlistscroller._y = Math.min(185, Math.max(85,
playlistscroller._y-delta));
    updateplaylistscroll();
};
Mouse.addListener(mouseListener);
playlistscrollbar.onPress = function() {
    playlistscroller._y = Math.min(185, Math.max(85, _ymouse));
    updateplaylistscroll();
};
function updateplaylistscroll() {
    playlistbox.playlistitemcontainer._y =
-((playlistscroller._y-85)/101)*(playlistbox.playlistitemcontainer._height-149);
}

var myMenu = new ContextMenu();


var menuplaypause = new ContextMenuItem("Play / Pause", toggleplaypause);
menuplaypause.separatorBefore = true;
myMenu.customItems.push(menuplaypause);
/*var menuprevioustrack = new ContextMenuItem("Previous Song",
loadprevioussong);
myMenu.customItems.push(menuprevioustrack);
var menunexttrack = new ContextMenuItem("Next Song", loadnextsong);
myMenu.customItems.push(menunexttrack);*/
myMenu.hideBuiltInItems();
_root.menu = myMenu;

Please help me out:(!!!!


Thanks
Kiran
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to