Avatar billede jakwag Nybegynder
02. september 2003 - 21:45 Der er 5 kommentarer og
1 løsning

stream af video

Hey.

Jeg gir op!

Jeg vil gerne streame en video i flash. Den ligger i en swf som hedder "movietest.swf"

Jeg har så lavet dette script:
(ja, nu får i altså det hele)

// ******************************
// build interface
// ******************************
sw = 350;
sh = 250;
mx = 22;
my = 20;
this.buildInt = function(mwidth, mheight) {
    // default
    topLeft_mc._x = 0;
    topLeft_mc._y = 0;
    left_mc._x = 0;
    buttomCorner_mc._x = 0;
    top_mc._y = 0;
    topRight_mc._y = 0;
    left_mc._y = topLeft_mc._y+topLeft_mc._height;
    top_mc._x = topLeft_mc._x+topLeft_mc._width;
    buttom_mc._x = buttomCorner_mc._x+buttomCorner_mc._width;
    // difs
    var bottomDif = 18;
    var rightDif = 13;
    // corners left
    buttomCorner_mc._y = my+mheight-bottomDif;
    topRight_mc._x = mx+mwidth-rightDif;
    logoCorner_mc._x = topRight_mc._x+topRight_mc._width-logoCorner_mc._width;
    logoCorner_mc._y = buttomCorner_mc._y;
    // scale sides
    left_mc._height = buttomCorner_mc._y-topLeft_mc._height;
    right_mc._height = logoCorner_mc._y-topRight_mc._height;
    buttom_mc._width = logoCorner_mc._x-buttomCorner_mc._width;
    top_mc._width = topRight_mc._x-topLeft_mc._width;
    // place sides
    right_mc._x = topRight_mc._x;
    buttom_mc._y = buttomCorner_mc._y;
    right_mc._y = topRight_mc._y+topRight_mc._height;
    // place buttons
    var buttonDif = 70;
    play_mc._y = buttom_mc._y+buttom_mc._height-buttonDif;
    fbw_mc._y = buttom_mc._y+buttom_mc._height-buttonDif+(play_mc._height-fbw_mc._height);
    ffw_mc._y = buttom_mc._y+buttom_mc._height-buttonDif+(play_mc._height-fbw_mc._height);
    skipb_mc._y = buttom_mc._y+buttom_mc._height-buttonDif+(play_mc._height-fbw_mc._height);
    skipf_mc._y = buttom_mc._y+buttom_mc._height-buttonDif+(play_mc._height-fbw_mc._height);
    // slider
    slider_mc._y = skipf_mc._y-8;
};
buildInt(sw, sh);
play_mc.stop;
skipb_mc.stop();
skipf_mc.stop();
ffw_mc.stop();
fbw_mc.stop();
//
// ******************************
// stream
// ******************************
movieon = false;
loadMovieNum("movietest.swf", 5);
this.onEnterFrame = function() {
    var bytesTotal = _level5.getBytesTotal();
    var bytesLoaded = _level5.getBytesLoaded();
    var sek = getTimer()/1000;
    var bytesPerSek = bytesLoaded/sek;
    var estimatedDownloadTimeLeft = (bytesTotal-bytesLoaded)/bytesPerSek;
    var fullLength = _level5._totalframes/12;
    txt_txt.text = "bytes Loaded:"+bytesLoaded+newline+"bytes total: "+bytesTotal+newline+"Sekunds elabsed: "+sek+newline+"bytes loaded per sek: "+bytesPerSek+newline+"bytes per frame: "+bytesTotal/_level5._totalframes+newline+"estimatedDownloadTimeLeft: "+estimatedDownloadTimeLeft+newline+"fullLength: "+fullLength;
    slider_mc.stream_mc._xscale = 100/(bytesTotal/bytesLoaded);
    _level5._x = mx;
    _level5._y = my;
    sw -= (sw-_level5._width)/1.5;
    sh -= (sh-_level5._height)/1.5;
    buildInt(sw, sh);
    if (fullLength-2>estimatedDownloadTimeLeft && Math.abs(sw-_level5._width)<0.2 && Math.abs(sh-_level5._height)<0.2) {
        if (movieon == false) {
            _level5.play();
            _level5._visible = true;
            _level0.swapDepths(0);
            movieon = true;
        }
        // her skal der senere ske noget mere
    } else {
        _level5.stop();
        _level5._visible = false;
    }
};

Det virker fint nok, så længe jeg tester det i flash, men så snart det kommer på nettet.

Hvad gør jeg galt? Eller er der nogen der har en anden måde at gøre det på?

: | Jakob
Avatar billede jakwag Nybegynder
02. september 2003 - 21:46 #1
Det er naturligvis nede i
//
// ******************************
// stream
// ******************************

...delen at det begynder at gå galt.
Avatar billede jakwag Nybegynder
02. september 2003 - 21:47 #2
... det virker iøvrigt fint hvis videoen allerede ER loadet ind én gang.

Det der ikke virker er:

_level5.play();
_level5._visible = true;
_level0.swapDepths(0);
movieon = true;
Avatar billede hoejrup Nybegynder
03. september 2003 - 06:53 #3
Du kan ikke streame en film i Flash, med mindre du anvender en Flash Communication Server.

/per
Avatar billede jakwag Nybegynder
03. september 2003 - 10:41 #4
Det er jeg klar over.

Det jeg vil lave er en progressiv stream. (jeg er ikke helt sikker på at det er det rigtige ord) Men ihvertfald kigger den på hvor lang tid det kommer til at tage at spille hele filmen, og hvor lang tid der er tilbage til alt er downloadet.
Og når der er mindre tid tilbage før hele filmen er downloadet end det kommer til at tage at spille den, Ja, så kan den jo lige så godt begynde.

Det er for at man ikke nødvendigvis skal downloade hele filmen før man kan se den.
Avatar billede hoejrup Nybegynder
03. september 2003 - 10:53 #5
Det er jeg klar over. :-)

Men jeg har aldrig set en løsning i Flash, der virkede efter dine ønsker.

/per
Avatar billede jakwag Nybegynder
22. januar 2004 - 11:07 #6
der er løst, og kunne godt lade sig gøre.
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