FLVplayer dinamico con playlist

- Letture: 5.149

Realizziamo un FLVplayer dinamico associando una playlist, con parametri presi da files di testo esterni.

FLVplayer

Per poter caricare un video all’interno del nostro Stage, prima di tutto dobbiamo creare dalla Libreria un nuovo oggetto video : Nuovo Video.

Inserisci nuovo video
Trasciniamo questo elemento sulla timeline e gli assegniamo un nome d’istanza.
Nel nostro caso “video“.

Il file per i parametri principale si chiama dati.txt ed è composto da:

video=video.flv&autoplay=si&autore=Julius&posizioney=1
&url=http://juliusdesign.wordpress.com/

  • video = path del primo video FLV, puo essere nella stessa directory oppure esterno inserendo l’indirrizzo http://
  • autoplay = si o no il video a seconda dei parametri partirà o no un autoplay
  • autore = è possibile inserire una scritta sul video in questo caso Julius
  • posizioney = avvole il video ha gia dei loghi quindi ho voluto inserire la possibilità di segliere la posizione della scritta autore: 1 in alto, 2 in basso
  • url = url di riferimento che verrà assegnato alla scritta autore

Il file per inserire i vari video FLV nella playlist si chiama playlist.xml ed è strutturato:

<?xml version="1.0" encoding="iso-8859-1"?>
<elenco>
<item descrizione="Mucca" valore="mucca.flv"></item>
<item descrizione="Scappa" valore="scappa.flv"></item>
</elenco>

  • descrizione: nome del video
  • valore: nome dei video .flv oppure l’indirizzo completo http://

NB: La playlist è raggiungibile cliccando l’icona “enter” affianco al pulsante play

Andiamo ad analizzare il codice principale

  • Carichiamo i parametri dal file di testo esterno:

dati = new LoadVars(); // carico i parametri
dati.load("dati.txt"); // dal file dati.txt
dati.onLoad = function() {
if (this.autore != undefined) { // se autore esiste
clip_autore.autore.text = this.autore; //associo l'autore
url = this.url; // associo il parametro url a variabile url
clip_autore.onRelease = function() {
getURL(url, "_blank"); // inserisco l'url con getURL
};
clip_autore.onRollOver = function() { //cambio colore al RollOver
my_color = new Color(this);
my_color.setRGB(0x55A0FF);
};
clip_autore.onRollOut = function() { //cambio colore al RollOut
my_color = new Color(this);
my_color.setRGB(0xffffff);
};
}
if ((this.autoplay == undefined) || (this.autoplay == "si")) { // se autoplay è uguale a si o nullo
ns.play(this.video); // il video parte da solo
} else { //altrimenti
stato.gotoAndStop("played"); // clip stato si ferma sul played
controlli.btnPlay._visible = true; // rendo visibile play
controlli.btnPause._visible = false; // rendo invisibile pausa
controlli.load_bar.stop(); //fermo la barra di loading
ns.play(this.video); // associo il video da far partire
ns.seek(0); // lo imposto all'inizio
ns.pause(true); // inserisco un pausa
}
if ((this.posizioney == undefined) || (this.pozizioney == "1")) { // parametro y di clip autore
clip_autore._y = 15; // in alto se = 1 o undefined
} else {
clip_autore._y = 254; // in basso se = 2
}
};

  • Creiamo le basi per intereagire col video

var nc:NetConnection = new NetConnection(); // creo istanza NetConnection
nc.connect(null); // richiamo connect
sound = new Sound(snd); // creo un nuovo suono
snd.attachAudio(stream); // associo il suono del video
var ns:NetStream = new NetStream(nc); // associo NetStream a nc
video.attachVideo(ns); // richiamo video per nc
ns.setBufferTime(5); // assegno il tempo di buffer a 5 secondi
controlli.s._visible = false; // icona no suono invisibile
stato.play_ante.useHandCursor = false; // plyed stato no manina

  • Eseguo possibili DEBUG: con la funzione infoObject

ns.onStatus = function(infoObject) {
if (infoObject.code == "NetStream.Play.Stop") {
//controlli.statusCode_txt.text = "La riproduzione è stata interrotta";
stato.gotoAndStop("played");
controlli.btnPlay._visible = true;
controlli.btnPause._visible = false;
ns.seek(0);
ns.play(this.video);
ns.pause(true);
}
if (infoObject.code == "NetStream.Play.StreamNotFound") {
controlli.statusCode_txt.text = "Impossibile trovare il file .flv";
}
// end if
};
controlli.time_txt.text = "loading";
var time_interval:Number = setInterval(checkTime, 500, ns);
function checkTime(ns:NetStream) {
var ns_seconds:Number = ns.time;
var minutes:Number = Math.floor(ns_seconds/60);
var seconds = Math.floor(ns_seconds%60);
if (seconds<10) {
seconds = "0"+seconds;
}
controlli.time_txt.text = minutes+":"+seconds;
}

  • Gestiamo i controlli per il video

controlli.btnPlay.onRelease = function() {
ns.pause(false);
controlli.btnPlay._visible = false;
controlli.btnPause._visible = true;
controlli.load_bar.play();
stato.gotoAndPlay("play");
};
controlli.btnPause.onRelease = function() {
ns.pause(true);
controlli.btnPlay._visible = true;
controlli.btnPause._visible = false;
controlli.load_bar.stop();
stato.gotoAndPlay("pausa");
};
controlli.btn_audio.onRelease = function() {
if (sound.getVolume() == 0) {
sound.setVolume(100);
controlli.s._visible = false;
} else {
sound.setVolume(0);
controlli.s._visible = true;
}
// end else if
};

Scarica il sorgente
Guarda il Tutorial

Stratega, Docente, Speaker con più di 12 anni di esperienza in strategie creative multicanale. Oggi sono Managing Partner di ThinkingHat, Innovation Studio specializzato in tecnologie emergenti per aziende e brand audaci.

85 Commenti

  1. Ciao Julius, non sono riuscito a fare in modo che al termine di un video, inizi subito quello successivo,e poi si ripetano in loop.
    Potresti indicarmi qual’è la variabile da modificare…
    Grazie

  2. Alessandro

    Ciao JuliuSs! come butta?
    Senti in questo player è possibile fare in modo che quando finisce un video parte subito quello seguente?

  3. Pingback: FLVplayer dinamico con playlist : sastgroup.com

  4. Raga’,io sto un po a zero rispetto a voi(noto a malincuore)!
    Non ho capito la cosa principale :-) questo video in che formato deve essere inserito?
    Se non ho capito male FLV..ma che formato è?! Io conosco Avi etc…

  5. Ciao, mi chiamo Michele, posso disturbarvi per un problemino con il flash player? ho provato a inserirlo in una pagina che sto costruendo, però non riesco a farlo funzionare. Se lo uso da solo come lho scaricato, funziona benissimo, ma non appena lo inserisco in una mia pagina mi scrive undefinited. Non riesco a risalire all’errore, quando esce questa scritta, cosa non trova? ho provato a eliminare i file dati e playlist ma mi dice sempre undefinited, quindi il problema è nel codice? Cosa sbaglio? alla fine ho solo fatto un copia e incolla fotogrammi.
    Nella stessa cartella ci sono i file playlist, dati e il file flv.
    Potete aiutarmi?

    Michele

  6. giovanni

    ciao,
    il tuo FLV player è davvero molto utile e funzionale!
    sarebbe possibile relizzarne un versione in cui la playlist ( x la scelta del video da riprodurre) si fatta da miniature di un fotogramma del video?
    ciao

  7. Ciao!
    Sono alle prese per la prima volta nella mia vita con flash e mi sto perdendo…
    devo realizzare un player con playlist, quindi il lavoro che hai fatto tu mi mette sulla buona strada, ma dovrei personalizzarlo e non so come….
    1. i video da visualizzare nel player devono essere .swf (ho provato ma non vanno…sicuramente dico bestialità ma sono un programmatore, non ci capisco un tubo di video….)
    2. non ci devono essere pulsanti di nessun tipo, il player deve solo partire e mostrare tutti i video della playlist a rotazione. Finita la playlist dovrebbe ricaricarla, cioè rileggere il file xml (la lista viene aggiornata nel corso della giornata).
    Quello che sono riuscita a fare finora è ottenere un player senza controlli (nascondendo i relativi livelli ed esportando di nuovo il tutto…brutale no?) però non parte il secondo video (sto provando con degli flv visto che swf non funzionano). Inoltre mi rimane la possibilità di cliccare sul video per metterlo in pausa (e non ci dovrebbe essere…).
    Puoi aiutarmi??
    Grazie….

  8. Ciao Paola questo lettore non ha ancora l’implementazione del loop video e per quello che non vedi i video successivi…

  9. Ah ecco……comunque grazie!!!!!!
    Intanto, soffrendo e sbuffando e facendo cose praticamente “a caso”, sono riuscita a modificare un altro player togliendo i pulsanti…pare che funzioni….
    Grazie ancora per la risposta prontissima!!!!
    Ciao!

  10. ciao julius bello il tuo blog!complimenti..volevo chiederti come mai mi integra il secondo video nella time line.. cioè io trascino il clip video ma niente nn va..ti ringrazio in anticipo!

  11. Pasquale

    Salve Julius, complimenti per il sito è davvero ben fatto!
    Avrei un piccolo problema da risolvere, “almeno lo spero”. Ho realizzato due video in formato flv, il primo l’ho nominato Loop.flv e deve funzionare in loop, mentre il secondo video Aktion.flv dovrà partire solo se si clicca sul primo video, alla fine di questo secondo video dovrà ripartire di nuovo dal primo video “sempre in loop”…
    Spero di essermi spiegato bene

    Potresti darmi una mano? Grazie mille

    Pasquale

  12. HI alex,

    In this blog there are some blue links for download at end tutorials

    :) Scarica il sorgente >> for download the tutorial
    :) Guarda il Tutorial >> for try the tutorial

  13. Ciao Julius, volevo chiederti, sarebbe possibile inserire nel tuo player un sistema di buffering che si riempia tanto quando il rapporto tra durata del filmato e banda dell’utente?
    Puoi darmi una mano?
    Grazie Jo

  14. Ciao Julius
    spero leggerai ancora questi post….
    non son riuscito a capire perché il tuo player terminata la riproduzione del primo flv non mi si posiziona sul secondo…..
    approffitoo ancora, se è possibile terminato un flv farlo poszionare su quello successivo della playlist è anche possibile far partire automaticamnete questa clip successiva?
    grazie
    Luca

  15. devi intercettare la fine del video in questo modo

    nel frame

    var myListener = new Object();
    myListener.complete = function(eventObject) {
    //QUI LA TUA AZIONE
    };
    myMediaControl.addEventListener("complete", myListener);

    Dove il tuo video ha nome istanza myMediaControl

    e inserire il play del secondo video dove c’è scritto QUI LA TUA AZIONE

  16. intanto grazie per la risposta, ma perdona la mia ignoranza in AS, che significa nel frame? non riesco a capire in che punto devo inserire questo pezzo di AS…

  17. Cia Julius…complimenti per i tuoi lavori….sono fantastici…Senti volevo sapere se cè modo ,una volta caricata un playlist,di far partire i video in modo casuale piuttosto che in una sequnza precisa.
    Ciao Frà

  18. Ciao Julius, aiutami perché sono giorni che scarico sorgenti e leggo tutorial per cercare di inserire un player per visualizzare video prelevati da youtube e stavolta credevo proprio di avercela fatta invece…
    Ho inserito il tuo player all’interno del progetto ridimensionandolo poi ho caricato sul server all’interno della stessa cartella del file swf i file playlist.xml e il file dati.txt con le seguenti modifiche:

    video=http://youtube.com/watch?v=6kxDxLAjkO8&feature=related&autoplay=si&autore=ari&posizioney=1
    &url=http://www.ilfilodiarianna.info

    ed il risultato è visibile all’interno della pagina “notizie” qui

    cosa c’è di sbagliato?

  19. uffi! è la stanchezza, scusa… ;) avevo dimenticato di allegare le modifiche fatte all’xml

  20. Ciao Julius, innanzitutto grazie per l’aiuto che dai a tutti noi… poveri incompetenti!

    questo player è eccezionale, riesco a farlo funzionare sia in locale sia in internet ma…
    … inserendolo all’interno di un altro filmato che chiamo attraverso lo script
    loadMovie(“flvplayer.swf”, upload);
    non mi compare l’elenco delle playlist caricate (come se non riconoscesse il file xml.)
    I file fvlplayer e il filmato sono nella stessa posizione, quindi i percorsi dovrebbero essere corretti.

    Da cosa può dipendere secondo te?
    ti ringrazio tantissimo … e se passi da Verona ti offro una birra :)!

  21. @sara13: ciao sara leggi qui

    Ormai molti mi stanno offrendo la birra per tutta italia, sai dov’è il problema?

    E’ che mi sa che sono astemio, è un problema questo! ;-P

  22. Ciao julius,
    ci tengoa dirti che sei bravo.
    Tuttavia ho qualche problema con flv player,
    non riesco a caricare i file video.
    Potresti aiutarmi?
    grazie in anticipo

  23. il problema principale è che mi dice impossibile trovare i file.flv,
    quello secondario è che non riesco ad aprire e leggere il codice del file sorgente,
    e quindi non riesco a modificarlo o rinominarlo.
    Ho temporanemaente utilizzato i player di youtube,
    ma non mi piace per nulla,
    aiutami julius.

  24. sicuramente mi hai valutato principiante rispetto a te,
    ma se pensi che solo ieri non sapevo cosa volesse dire html…
    Anche dal file sorgente che ho scaricato,
    mettendo nella libreria nuovo video,
    e collegando il percorso dal file xml,
    mi dice impossibile trovare i file.flv,
    che sono comunque caricati sul server.
    Mi aiuterai vero?
    ci tengo, grazie in anticipo.

  25. ciao
    …anche io ho dei prob con la playlist e nn riesco a venirne fuori anche se bazzico abbastanza con flash,riesco a far caricare il primo video ma nn il secondo sebbene gli ho cambiato la root del video
    ti allego i codici sorgenti cosi vedi se c’è un errore
    DATI:
    video=mix22.flv&autoplay=no&autore=video 1&posizioney=1&url=
    video=http://www.xxx.it/video/mix2.flv&autoplay=no&autore=video 2&posizioney=1&url=

    PLAYLIST:

    CI SONO ERRORI?

    saluti

  26. @antonio: hai un link da farmi vedere cosi controllo online…

    @stevy: mandami una mail il codice nei commenti non viene visualizzato correttamente

  27. come faccio con il link, ancora non sono riuscito a caricarlo.
    a mio avviso l’errore che commetto stà nell’aprire nuovo video1 nel file sorgente, difatti:
    1. devo mettere il controllo dell’action script?
    2. devo incorporarlo e sincronizzarlo sulla linea temporale?
    @Julius:

  28. Riccardo Puglisi

    @ Julius:
    non riesco a capire come devo far diventare il lettore in loop,
    dove devo modificare il codice AS..
    alla fine del primo video…..dove?

    GRazie in anticipo

Commenti