Visualizzazione dei risultati da 1 a 8 su 8

Discussione: preload flv

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    7,261

    preload flv

    Ho un video pesantissimo (7 minuti = 100 MB) in flv, e non voglio comprimerlo o ridurne le dimensioni.

    Nelle ore di punta, e sempre per chi ha meno di 7 mega di DSL, ovviamente scatta.

    C'è moodo di farlo precaricare? E' caricato (adesso) dal banale player di flash, ma posso cambiarlo.


    Se è una domanda idiota siete formalmente tenuti ad insultarmi e percularmi: sono almeno 3 anni che non lavoro più per il web, con flash, e ormai ho perso memoria, di queste cose


    Ah, ho flash8.



    video: http://www.digipoiesis.it/sharm/sharm.swf
    Il re è nudo (cit).

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    I video flv vengono riprodotti in download progressivo e il primo avvio viene eseguito dopo aver riempito il buffer di cui si può decidere il valore, ma questo non aumenta particolarmente la qualità del flusso.
    Volendo si può fare un preload, ma pensa a quanto tempo ci voglia per scaricare 100Mb con una connessione media, pochi aspetterebbero che il file sia caricato del tutto prima di visionarlo.
    L'alternativa più elaborata e più vicina allo streaming vero e proprio è l'uso dello streaming php

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    7,261
    Originariamente inviato da and80
    I video flv vengono riprodotti in download progressivo e il primo avvio viene eseguito dopo aver riempito il buffer di cui si può decidere il valore, ma questo non aumenta particolarmente la qualità del flusso.
    Volendo si può fare un preload, ma pensa a quanto tempo ci voglia per scaricare 100Mb con una connessione media, pochi aspetterebbero che il file sia caricato del tutto prima di visionarlo.
    L'alternativa più elaborata e più vicina allo streaming vero e proprio è l'uso dello streaming php
    Non so niente di php e non arrivo ad AS3

    Il preload non scarica tutto il video, ne scarica un po'.

    Comunque, questa cosa non è per il pubblico, è una cosa da far vedere agli amici; quindi posso dir loro di avviare, farsi un giro e poi andarselo a vedere; attualmente dico loro di minimizzarlo, aspettare 10 minuti, riavviarlo e guardarselo. Aspettare in questo modo o senza neanche cominciare a guardarlo è lo stesso, e qualsiasi cosa è meglio del video che si pianta ogni 2x3.

    E' un casino fare un preload per un .flv (da vedere in un .swf) in AS2?
    Il re è nudo (cit).

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da nillio
    E' un casino fare un preload per un .flv (da vedere in un .swf) in AS2?
    No, non è complesso, è come farlo per un'immagine o un swf da caricare.
    Il componente FLVPlayback contiene le proprietà "bytesLoaded" e "bytesTotal", l'unica accortezza da tenere è quella di avviare il preload quando i metadati del file video sono disponibili.

    C'è un esempio di applicazione nella guida che mostra come realizzare la cosa:
    Codice PHP:
    /**
     Richiede:
      - componente FLVPlayback sullo stage con il nome di istanza: my_FLVPlybk
      - componente TextArea sullo stage con il nome di istanza: my_ta
    */
    import mx.video.*;
    my_FLVPlybk.autoPlay false;
    var 
    listenerObject:Object = new Object();
    listenerObject.metadataReceived = function(eventObject:Object):Void {
        
    trace("Loading: " my_FLVPlybk.bytesTotal " bytes.");
    };
    my_FLVPlybk.addEventListener("metadataReceived"listenerObject);
    my_FLVPlybk.contentPath "http://www.helpexamples.com/flash/video/water.flv"
    Come puoi vedere, all'interno della funzione "listenerObject.metadataReceived" c'è un trace che mostra il peso totale, ed è lì che bisogna inserire il richiamo al preload.
    Codice PHP:
    function preload (v:FLVPlayback) {
        
    this.onEnterFrame = function () {
            var 
    c:Number v.bytesLoaded;
            var 
    t:Number v.bytesTotal;
            var 
    p:Number Math.floor((c/t)*100);
            if (!
    isNaN(p)) {
                
    trace (p+"%");
            }
            if (
    >= && && == 100) {
                
    delete this.onEnterFrame;
                
    v.play();
            }
        }

    Nella funzione al posto del 100 puoi inserire la percentuale che ti interessa precaricare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    7,261
    Grassie mille
    Il re è nudo (cit).

  6. #6
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    mm... ho provato ad usare il tuo script ma se cambio la percentuale non mi parte il video.... possibile?

    codice:
    if (c >= t && t > p && p ==  50 ) {

    Vorrei sapere anche si possono fare delle azioni sugli eventi del flv, ovvero vorrei quando finisce il video ridirezionare ad un'altra pagina.. come posso fare?

    (chiaramente non sono molto esperta...)

    Grazie anticipatamente dell 'aiuto
    IL MONDO È BELLO PERCHÉ È VARIO.

  7. #7
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    ok.. allora.. intanto mi sono risposta alla seconda domanda:

    codice:
    var listenerObject:Object = new Object();
    listenerObject.complete = function(eventObject:Object):Void {
       getURL("pagacuiridirezionareallafinedelvideo.htm");	
    };
    my_FLVPlybk.addEventListener("complete", listenerObject);
    my_FLVPlybk.contentPath = "documents/VIDEO/miovideo.flv";
    Mi resta il fatto che non riesco a far partire il video quando ne è stato caricato il 50%....
    Mi si blocca...
    IL MONDO È BELLO PERCHÉ È VARIO.

  8. #8
    Utente di HTML.it L'avatar di M@nu
    Registrato dal
    Dec 2001
    Messaggi
    352
    beh.. non so se è proprio corretto, cmq giusto per cronaca io alla fine ho fatto così:

    codice:
    function preload(v:FLVPlayback) {
        this.onEnterFrame = function () {
            var c:Number = v.bytesLoaded;
            var t:Number = v.bytesTotal;
            var p:Number = Math.floor((c/t)*100);
            if (!isNaN(p)) {
    			my_ta.text=p+"%"			
            }
    
    		if (p>50){
    			v.play();
    		}
    		if (c >= t && t > p && p == 100) {
           		    delete this.onEnterFrame;	
    		}
        }
    }
    Ciao Ciao
    IL MONDO È BELLO PERCHÉ È VARIO.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.