Creați-vă propria dvs. ActionScript YouTube Player

În timpul acestui tutt vom analiza utilizarea API-ului YouTube pentru a construi un player YouTube personalizat cu ActionScript 3.0.


Rezultatul final al rezultatelor

Să aruncăm o privire asupra rezultatului final pe care îl vom strădui:


Pasul 1: Configurarea fișierului

Iată cum aceasta va funcționa:

  • Vom crea un pachet de redare YouTube care va primi ID-ul videoclipului
  • Vom crea o clasă de documente pentru a instanțializa playerul și a seta comenzile acestuia
  • Vom construi interfața playerului cu instrumentele de proiectare din Flash IDE și le vom referi în clasa de documente

Pentru aceasta vom avea nevoie de următoarele fișiere:


Pasul 2: Configurarea etapelor

Deschideți Main.fla și editați scena pentru ao face 500x440 cu 30 de cadre pe secundă. Setați clasa de documente la "Main".


Pasul 3: Configurarea straturilor

Avem nevoie doar de două straturi pentru acest tutorial: titularul de player, care va fi populat de playerul nostru YouTube și stratul de control, care va avea toate butoanele folosite pentru a controla playerul. În acest caz, vom avea o funcție de "redare / pauză", o "mute / dezactivare" o bară de progres (reprezintă suma încărcată) și o bară de plinătăți (reprezintă timpul de redare).

Am adăugat o grămadă de alte cadre doar pentru aspect grafic, nu aveți nevoie de ele.


Pasul 4: Controale

Acestea sunt simple simboluri movieclip cu numele de instanțe "play_mc" și "mute_mc", "progress_mc" și "fullness_mc".


Pasul 5: Titularul de jucător

Jucătorul are, de asemenea, o formă neagră simplă convertită într-un movieclip cu numele de instanță "holder_mc".


Pasul 6: Clasa YoutubePlayer

Deschideți YoutubePlayer.as și construiți o clasă de bază schelet care extinde o clasă MovieClip

 pachet public class YoutubePlayer extinde MovieClip funcția publică YoutubePlayer () 

Pasul 7: Importurile din YoutubePlayer.as

Trebuie să importem următoarele clase:

 import flash.display.MovieClip; import flash.display.Loader; importul flash.events.Event; import flash.system.Security; import flash.net.URLRequest;

Pasul 8: Variabilele YoutubePlayer.as

... și apoi configurați următoarele variabile (tot codul din pașii următori este comentat):

 var jucător: obiect; // obiectul care va avea playerul încărcat la loader var: Loader; // încărcătorul care va încărca playerul var id: String; // ID-ul videoclipului var playerStatus: String; // returnează starea curentă de redare a jucătorilor var progressRatio: Number; // returnează diferența raportului dintre octeți încărcați și total octeți, de la 0 la 1 (util pentru bara de progres) var fullnessRatio: Number; // returnează diferența raportului dintre capul de redare și secvența totală, de la 0 la 1, (util pentru bara de umiditate) var ismuted: Boolean; // se întoarce dacă jucătorul este dezactivat

Pasul 9: YoutubePlayer.as YoutubePlayer ()

Când instanțiată avem nevoie de ID-ul videoclipului trecut la funcția YoutubePlayer ():

 funcția publică YoutubePlayer ($ id: String) Security.allowDomain ("www.youtube.com"); // permite accesul de pe youtube id = $ id // setează id loader = new Loader (); // instantează încărcătorul loader.contentLoaderInfo.addEventListener (Event.INIT, onLoaderInit); // După încărcare, solicităLoaderInit loader.load (nou URLRequest ("http://www.youtube.com/apiplayer?version=3")); // începe procesul de încărcare

Pasul 10: YoutubePlayer.as onLoaderInit ()

Iată funcția onLoaderInit (), numită după ce încărcătorul a fost instanțiat (a se vedea blocul anterior de cod).

 funcția privată onLoaderInit (eveniment: Eveniment): void addChild (loader); // adaugă încărcătorul la stadiul loader.content.addEventListener ("onReady", onPlayerReady); // sunat când playerul este pregătit loader.content.addEventListener ("onError", onPlayerError); // sunat când playerul are erori loader.content.addEventListener ("onStateChange", onPlayerStateChange); // sunat când se schimbă starea de redare

Pasul 11: YoutubePlayer.as onPlayerReady ()

Dacă totul este OK până acum, funcția onPlayerReady () se numește:

 funcția privată onPlayerReady (eveniment: Eveniment): void player = loader.content; // setează playerul player.setSize (400, 225); // setează dimensiunea afișajului player.loadVideoById (id) // Încarcă videoclipul cu id addEventListener (Event.ENTER_FRAME, updatePlayer); // actualizează playerul

Pasul 12: YoutubePlayer.as Alte evenimente utile ()

Aceste urme sunt utile pentru depanare:

 funcția privată onPlayerError (eveniment: Eveniment): void trace ("eroare de jucător:", Object (event) .data);  // Aș fi putut folosi acest lucru pentru a actualiza variabila playerStatus, dar am vrut să vă arăt o altă metodă privată onPlayerStateChange (event: Event): void trace ("starea jucătorului:", Object (event) .data); 

Pasul 13: Împachetători de la YoutubePlayer.as

Acestea sunt ambalajele pentru controlul extern:

 funcția publică playVideo () player.playVideo () funcția publică pauseVideo () player.pauseVideo () funcția publică stopVideo () player.stopVideo () funcția publică muteVideo () player.mute unmuteVideo () player.unMute ()

Pasul 14: YoutubePlayer.as updatePlayer ()

Doar o ultimă funcție și clasa se face:

 funcția publică actualizarePlayer (e) ismuted = player.isMuted () // returnează true dacă este mutată // stabilește raportul de progres progressRatio = player.getVideoBytesLoaded () / player.getVideoBytesTotal () // stabilește raportul deplină fullnessRatio = player.getCurrentTime () /player.getDuration () // setează playerulStatus pentru comutatorul exterior (player.getPlayerState ()) caz -1: playerStatus = pauză "unstarted"; cazul 0: playerStatus = pauză terminată; cazul 1: playerStatus = pauză de joc; Cazul 2: playerStatus = pauză; 

Pasul 15: Principalele importuri

Sperăm că deja știți cum să construiți o clasă de documente de bază (deși nu, consultați această introducere rapidă). În interior, importați aceste clase:

 import flash.display.MovieClip; importul flash.events.Event; importul flash.events.MouseEvent; importă YoutubePlayer;

Pasul 17: Main.as Main ()

Iată funcția noastră Main ().

 funcția publică principală () addEventListener (Event.ADDED_TO_STAGE, init); // previne apelurile înainte de a fi pregătite

Pasul 16: Main.as Init ()

O întrebare pe care ați putea să o întrebați este "Cum știu id-ul videoclipului?"

Este foarte simplu: luați urlul filmului pe care îl urmăriți "http://www.youtube.com/watch?v=fJGLAo_7F_I", de exemplu; ID-ul videoclipului este numărul de 11 cifre pe care îl trimite v var - în acest caz "fJGLAo_7F_I".

 funcția privată init (e) removeEventListener (Event.ADDED_TO_STAGE, init); // elimină ascultătorul anterior youtubeplayer = noul YoutubePlayer ("txqiwrbYGrs"); // instantează playerul cu acest id de videoclip // stabilește butoanele play_mc.buttonMode = mute_mc.buttonMode = true; play_mc.addEventListener (MouseEvent.CLICK, playPausePlayer); mute_mc.addEventListener (MouseEvent.CLICK, muteUnmutePlayer); hold_mc.addChild (youtubeplayer) // adaugă playerul la suportul playerului // resetează plinătatea și progresul fullness_mc.width = 1 progress_mc.width = 1 // actualizează completitudinea și progresul addEventListener (Event.ENTER_FRAME, bucla); 

Pasul 17: Main.as playPausePlayer ()

Iată funcția pentru butonul nostru simplu care folosește "playerStatus" pentru a comuta între redare și pauză:

 funcția privată playPausePlayer (e) if (youtubeplayer.playerStatus == "joc") youtubeplayer.pauseVideo ();  altceva youtubeplayer.playVideo (); 

Pasul 18: Main.as muteUnmutePlayer ()

În mod similar, iată funcția pentru butonul nostru care folosește "ismuted" pentru a comuta între mute și unmute:

 funcția privată muteUnmutePlayer (e) if (youtubeplayer.ismuted) youtubeplayer.unmuteVideo ();  altceva youtubeplayer.muteVideo (); 

Pasul 19: Bucla Main.as ()

Să dăm seama cum progresul filmului are loc ...

 // multiplicarea raportului cu lățimea totală a barelor ne va da lungimea dorită, deoarece raportul merge de la 0 la 1 buclă de funcții private (e) fullness_mc.width = youtubeplayer.fullnessRatio * 350 progress_mc.width = youtubeplayer.progressRatio * 350

Concluzie

După cum puteți vedea, este destul de simplu să creați un player youtube de bază în AS3, asigurați-vă că ați verificat referința API-Player pentru o listă de funcții și parametri pe care le puteți utiliza pentru a le extinde.

Sper că ți-a plăcut acest tutorial, mulțumesc pentru lectură!

Cod