Avatar billede idiotbarn Nybegynder
07. september 2005 - 11:33 Der er 1 kommentar og
1 løsning

Streaming stopper download i afspilling

Jeg er ved at forsøge at lave en mp3 streamer som så mange andre, men jeg har lidt et problem med at den henter
meget langsom, og ved afspilningen stopper tit med at hente.
Den henter nogenlunde de første 500kb, men til tider tager det temmeligt lang tid. Så snart den begynder at afspille, henter den ingenting eller meget lidt. Er der umiddelbart noget snavs at se?

Jeg har 8 frames: (4 frames/sek, MX 2004)
#############################################################
Frame 1:

//Variabler og tekst der bliver brugt
//###################################################################
Klar=0; //Sættes til 1 når listen er blevet loadet fra asp filen
SongList="<center>Henter sange...</center>" //Tekst mens teksten loader
NoSongs = "Der er ingen tilgængelige sange"; //Tekst der vises hvis der ikke er nogen sange i mp3 bib
Sti="mp3/"; //relativ sti fra flashfilen til sangene
AntKB = 500; //Antal KB der skal loades inden sangen begynder at afspille
//i og Seconds bruges til at regne gennemsnitlig hastighed
i=0;
Seconds=0;
//###################################################################
//Hent variabler fra aspfil:
loadVariables("Get2.asp",this);

//retunere Klar=1&Flash=||,||c-n.o.a.mp3|-,-|02 - CS - n.o.a.||,||urt.mp3|-,-|Urt
//"||,||" og "|-,-|" bruges til at adskille strengen

_global.Playing = false;

function initNewSound(path)
    {
        path=path.split("|.,.|");
        CurrentlyPlaying=path[1]; //Skriver sangens titel ud i tekstfeltet CurrentlyPlaying
        _global.SndFile = path[0]; //init ny sti
        _global.Snd = new Sound();
        _global.Snd.loadSound(SndFile, true); //loader lyden, true for streaming
        _global.SndPos;
        _global.Playing = false;
        _global.Snd.stop();
        gotoAndPlay(7)
    }

_global.Snd.onSoundComplete=function()
    {
        _global.SndPos = 0;
        _global.Playing = false;
        gotoAndStop("frmPaused");
    }

function PlayTheSound()
    {
        if (_global.Playing == false)
        {
            _global.Snd.start((_global.SndPos/1000), false);
            _global.Playing = true;
        }
    }

function StopTheSound()
    {
        _global.SndPos = 0;
        _global.Snd.stop();
        _global.Playing = false;
        //gotoAndStop("frmPaused");
    }

function PauseTheSound()
    {
        _global.Playing = false;
        gotoAndStop("frmPaused");
        _global.SndPos = _global.Snd.position;
        _global.Snd.stop();
    }

#############################################################
Frame 2: Tom

#############################################################
Frame 3:

if(Klar!=1) //Loop mellem frame 2 og 3 indtil teksten fra aspfilen er loaded
    {
        gotoAndPlay(2)
    }

#############################################################
Frame 4:

if(Flash=="") //Flash er variablen fra ASP filen
    {
        SongList = NoSongs;
    }
else
    {
        SongList=""; //Listen med sange
        Flash=Flash.substring(5); //Få fat informationerne fra asp, første 5 char springes over
        arrSongs = Flash.split("||,||");
            for(i = 0;i<arrSongs.length;i++)
            {
                arrSongInfo = arrSongs[i].split("|-,-|"); //Adskild filnavn og titel
                    if(arrSongInfo.length==2)
                    {
                        FilNavn = arrSongInfo[0];
                        SangNavn = arrSongInfo[1];
                        SongList+="<a href=\"asfunction:initNewSound,"+Sti+FilNavn+"|.,.|"+SangNavn+"\">"+SangNavn+"</a><br>";
                    }
            }
    }
    trace("Stop")
stop();

#############################################################
Frame 5:

Samme som Frame 4, men denne frame har label "frmPaused" i et andet layer

#############################################################
Frame 6, 7:

Tomme ind til videre

#############################################################
Frame 8:

var byteL = int(_global.Snd.getBytesLoaded());
Procent=(byteL/(AntKB*1024))*100;

//Print ud
CurrentlyLoading=Math.ceil(byteL/1024)+"/"+Math.ceil(_global.Snd.getBytesTotal()/1024)+"="+Math.ceil((byteL/_global.Snd.getBytesTotal())*100)+" %"
i++;
if(i % 4 == 0) //filen kører med 4 frames/sek, den kører mellem frame 7 og 8 og tæller op
{
    Seconds++;
    OldLoaded=Loaded;
    Loaded=byteL;
    PrSec = Math.round((Loaded-OldLoaded)/1024);
    //regn for sidste sek, samt gennemsnittet og udskriv det
    SongProg=PrSec + "KB/s Gennemsnit:"+Math.round((byteL/1024)/Seconds)+"KB/s"

}

if(Procent<100){
        setProperty("LoadBar", _xscale, Procent*200);
        CurrentlyLoading=Math.ceil(byteL/1024);
        gotoAndPlay(7);
       
    }
    else
    {
        PlayTheSound();
        //for at kunne overvåge hvad der er loadet køres der stadig mellem frame 7 og 8
        //gotoAndStop(6)
}
Avatar billede idiotbarn Nybegynder
07. september 2005 - 14:06 #1
Hmm...sletter jeg _global fungere det...Det er et script jeg har fået stukket i hånden jeg skulle se om jeg kunne få til at virke...hvorfor har man brugt den? hvad gør den?
Avatar billede idiotbarn Nybegynder
27. september 2005 - 18:37 #2
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester