FLVplayer dinamico con playlist

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=https://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

78 risposte a "FLVplayer dinamico con playlist"

  1. julius sei grande!!!Ancora una cosa.
    Ho provato il tuo player è fantastico, ma carica un solo video, il primo nel file dati.txt e gli altri???
    Non c’è un modo per avanzare rapidamente????

  2. Ciao Julius e complimenti per il player.
    Ho apportato una piccola modifica al player per fargli digerire file dati diversi, qualora si debbano pubblicare flv diversi sullo stesso sito senza dover mettere il player in una cartella diversa.
    Il tutto modificando la riga :
    dati.load(“dati.txt”);
    con :
    dati.load(_root.dataFile);

    In questo modo (per chi vuole fare la stessa modifica) il file dati.txt puo’ essere rinominato e passato al player con :

    embed src=”FLVplayer.swf?dataFile=FileDati1%2Etxt”
    e
    param name=”movie” value=”FLVplayer.swf?dataFile=FileDati1%2Etxt”

    Pensi di inserire il cursore in una futura release ?

    Ciao e grazie, Raffaele.

  3. Ciao julius mi dai una mano?
    quando finisce un video come faccio a:
    – stoppare la barra arancione
    – far comparire l’icona dello stop sul video
    – rendere invisibile il tasto stop e visibile il tasto play
    E’ possibile inoltre mettere un controllo per saltare da un punto all’altro del filmato?
    Grazie della tua pazienza

  4. allora per stoppare e riportare le opzioni play stop e icona play al suo posto viene eseguito da questo codice
    if (infoObject.code == “NetStream.Play.Stop”) { // funziona per stabilire se il video è stato interrotto
    stato.gotoAndStop(”played”); // metto l'icona play
    controlli.btnPlay._visible = true; // rendo visibile il play
    controlli.btnPause._visible = false; // rendo invisibile lo stop
    ns.seek(0); // torno all'inizio del video
    ns.play(this.video); //mi posiziono per avviare il play
    ns.pause(true); // richiamo la pausa
    }

    Per quanto riguarda la barra per scorrere nel filmato, vedrò di implementarla nelle prossime release.

    ciao

  5. Grazie.
    Un dubbio però…

    questo non cattura la fine del video ma ti dice che la riproduzione è stata interrotta.
    sulla guida non trovo molto (ne tantomeno in rete)… mi sai dire come faccio a catturare la fine del flv?
    Grazie mille

  6. 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

  7. C’è qualcosa che non va…
    utilizzando il tuo player (il video ha istanza “video”) non succede nulla.
    a te funziona?

  8. Ciao,

    ho un problema usando il player, in locale (tutto nella stessa directory) funziona alla grande ma appena trasferisco la cartella sulla root di un sito sul server continua a darmi il messaggio “impossibile trovare il file .flv” 😦
    non capisco a cosa può essere dovuto, consigli?

  9. be l’errore dice tutto ^_^
    controlla di aver impostato corretamente la patch del file .flv
    se puoi linkami il player sul tuo server da poterlo controllare
    saluti

  10. ne approfitto per fare un’altra domanda…
    è possibile avere la tendina di selezione dei video in playlist “navigabile”?
    Nel senso: adesso ho in playlist 16 video, ma ne sono visibili nella tendina solo 15 (il 15esimo ha il nome tagliato a metà e il 16esimo è “irrangiungibile”). Siccome di video ne dovrei mettere una sessantina (!!!), c’è modo per spostarsi in basso in questa tendina per vedere i filmati dopo il 15esimo???
    Ho provato a dare un occhiata allo script ma il flash per me è arabo, quindi cerco un aiutino… 😉

  11. @Maurizio ciao in effetti hai ragione ^^

    Ho inserito una combo box tra i componenti di Flash, i video vengono presi da un file XML facilmente modificabile.

    La combo gestirà altezza e larghezza
    Riscarica i file e rileggi il pezzo dell’articolo in cui si parla della playlist

    saluti

  12. Complimenti per lavoro, è utilissimo!
    Io vorrei inserire i file “dati.txt” e “playlist.xml” in una cartella diversa da quella in cui c’è il file “flvplayer.swf”
    Per fare ciò presumo che dovrei passare al file .swf la path dei due files… non so come si fa in flash 😀 Ho dato un’occhiata al codice actionscript ed ho trovato le parti dove vengono letti i files, ma non so proprio come potrei risolvere il mio problema… chiedo un piccolo help
    Ciao

  13. @SpinoWeb ciao ti basterà modificare i percorsi dei file e inserire quelli corretti con http://dominio/

    Primo livello [visualizza CODICE tasto rapido F8]

    linea 19
    dati_xml.load("playlist.xml");

    Second livello [visualizza CODICE tasto rapido F8]

    linea 2

    dati.load("dati.txt");

    ovviamente si ptrebbe, come qualcuno a gia fatto, far diventare variabili questi parametri in questo modo

    Primo livello [visualizza CODICE tasto rapido F8]

    linea 19
    dati_xml.load(_root.playlist);

    Second livello [visualizza CODICE tasto rapido F8]

    linea 2

    dati.load(_root.dati);

    In fase di pubblicazione passeremo i valori delle variabili al player, a seconda della scelta di pubblicazione, in questo modo

    flvplayer.swf?playlist=http://miodominio/playlist.xml&dati=http://miodominio/dati.xml

    un saluto

  14. @SpinoWeb allora dalla playlist vengono visualizzati correttamente.

    L’errore è nel file dati.txt infatti se noti hai scritto due volte la stessa sintassi.

    Invece deve essere ripetuta una sola volta, la path del video inserito in dati.txt indica solo il primo video che sarà visualizzato all’inizio.

    ciao

  15. Grazie mille per il tuo tempo. Ho aggiustato il file dati.txt e funziona se clicco sulla playlist.
    Purtroppo non riesco a farlo funzionare come quando metto tutti i files nella stessa directory, infatti del primo file non vedo l’anteprima col pulsante “play” sopra, ma devo entrare nella playlist e cliccare per farlo partire.
    Va boh, mi sa che ho “rotto” abbastanza, anche perchè di flash non ne capisco e sarà sicuramente qualche fesseria che sbaglio io.

    Ciao ciao

  16. Ciao Julius,
    torno a chiederti lumi sul player e ad approfittare della tua gentilezza…
    Posto che il player funziona benissimo, pure troppo 🙂
    Il mio problema è che mi servirebbe una versione del player con il codice del flash modificato in modo che non ci sia playlist o comunque SENZA file txt o xml esterni, ma il video da visualizzare nel player sia preso direttamente dalla chiamata al player, una cosa del tipo “FLVplayer.swf?video=miovideo.flv”…
    E’ possibile???

  17. Ciao maurizio,

    lo puoi fare benissimo basta che invece di richiamare il video con this.video lo richiami con _root.video

    In questo caso il player si aspetterà una variabile di nome video che la passerai tramite HTML come hai scritto sopra.

    Ovviamente elimina la parte playlist e l’impostazione dei video semplicemente eliminando la parte del codice

    Comunque se aspetti fino a domani…. ^_^

  18. ciao !

    posso chiederti una cosa ?
    c’è il modo di far partire automaticamente il filmato senza dover premere play ?

    grazie e ciao,
    carlo.

  19. no no !
    ce l’ho fatta da solo 🙂

    ti chiedo però un’altra cosa …
    c’è un modo per far si che nel momento in cui un filmato finisce inizi subito quello successivo senza dover ripremere play o doverlo selezionare dalla tendina ???

    grazie mille !
    carlo.

  20. ciao. bellissimo player!
    unico problema… se sente solo l’audio e non si vede il video…
    come mai secondo te???ci sono delle specifiche di codec particolari?
    o devo modificare qualche riga di codice?
    grazie
    luca

  21. @carlo si devi intercettare la fine del video FLV con una funzione gia presente, che ora è impostata nel bloccare il video.

    Ti basterà andare avanti e proiettare il successivo

    @Luca bè questo tipo di problema penso non centri niente con il playerFLV in flash, prova con altri FLV

  22. mmm…. ho provato anche con 1 altro flv ma dà lo stesso errore….
    nel senso che non si vede niente…
    proverò a sperimentare.
    che compressione deve avere 1 flv??
    ciao e grazie

  23. Il livello di compressione del filmato deve essere in funzione del livello di qualità…

    Comunque mi sembra strano..se vuoi inviami i files con il video FLV e vediamo se lo vedo o meno…

    ciao

  24. Ciao lorenzo la prassi è sempre la stessa cambieranno un paio di cose ovvero..

    mettiamo il caso che usi PHP+MYSQL

    il file di lettura non sarà più un .txt ma un file .php

    Ti servirà un codice con la sintassi corretta per stampare i dati presi da DB

    guarda questo esempio per realizzarlo Flash e Database MYSQL

    saluti

  25. Grazie julius! Come sempre sei disponibilissimo.
    Ok farò delle prove, come ben sai ho già utilizzato quel tuo tutorial, ed ho avuto dei problemucci che poi sono stati risolti, grazie al tuo supporto naturalmente. 🙂

    PS: era meglio la foto precedente che questa! 😛 (scherzo!) 😉

  26. 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

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

  28. 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…

  29. 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

  30. 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

  31. 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….

  32. 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!

  33. 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!

  34. 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

  35. 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

  36. Ciao Eccezzionale ti chiedo però una cosa …
    c’è un modo per far si che nel momento in cui un filmato finisce Automaticamente parti subito quello successivo in automatico o in random sono disperato aiuto devo inserirlo sul sito per caricare video di continuo se puoi metti il nuovo sorgente a disposizione o scrivimi Grazie…
    Cecilia

  37. Ciao Julius, ho visto che hai fatto un ottimo lavoro.
    Complimenti, ora però mi piacerebbe potessi aiutarmi e so che per te è molto semplice.
    Se volessi fare leggere i dati da un mdb di access tramite una pagina asp come fare?
    Ammesso sia possibile farlo.

  38. Devi riuscire a stampare una pagina asp con le informazioni impostate come il file XML a quel punto ti basterà inserire il percorso della pagina asp creata da access

  39. Grazie della risposta, però ti volevo chiedere se io volessi fare leggere quindi solo le variabili passate dalla pagina asp essendo il mio intento fare vedere un filmato alla volta dinamicamente, si potrebbe eliminare il file txt o è un oggetto importante per la funzionalità del lettore?

  40. Ciao Jiulius, sto usando file flv in un progetto, ma non riesco a gestire i cuepoint hai suggerimenti? ma soprattutto esempi funzionanti?
    ti ringrazio

  41. Ciao Julius, in primis complimenti per il sostegno che dai ai tanti apprendisti di flash.
    In secundis, io da solo grafico flash mi sono da poco affacciato alla programmazione AS e mi chiedevo: se volessi aggiungere una barra di scorrimento orizzontale per spostarmi con rapidità da una parte all’altra del filmato, come potrei fare?
    Grazie in anticipo

  42. @Hecto in questo player non è stata prevista, ne trovi molti altri nella sezioen tutorial che possono essere utili al tuo progetto.

    Per quanto riguarda questo devo decidermi a implementarla…

Lascia un commento