Bygg din egen Action YouTube Player

Build din egen Action YouTube Player
Del
Del
Del
Del

Dette Cyber ​​mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.

I løpet av denne tut vil vi ta en titt på å bruke YouTube API for å bygge en tilpasset YouTube-spiller med Actionscript 3.0.




Endelig resultat Forhåndsvisning

La oss ta en titt på det endelige resultatet vi skal jobbe mot:



Trinn 1: Fil Oppsett

Her er hvordan dette kommer til å fungere:

Vi vil opprette en YouTube-spiller wrapper som vil motta videoens ID

Vi vil opprette en dokument klasse på å bruke spilleren og sette sin kontroller

Vi vil bygge spillerens UI med designverktøy i Flash IDE og referere dem i dokumentet klassen

For dette har vi " ll trenger følgende filer:



Trinn 2: Stage Setup

Åpne opp Main.fla og redigere scenen for å gjøre det 500x440 med 30 bilder per sekund. Sett dokumentet klassen til



Trinn 3 "Main.": Layers Setup

Vi trenger bare to lag for denne opplæringen: spilleren holder, noe som vil være befolket av vår YouTube-spiller og kontroller laget, som vil ha alle knappene som brukes til å styre spilleren. I dette tilfellet vil vi ha en "play /pause" a "demping av /på" en fremdriftslinje (representerer beløp lastet) og en fylde bar (representerer hodet tid).

Jeg har lagt til en haug andre rammer bare for grafisk utseende, trenger du egentlig ikke trenger dem



Trinn 4:. Controls

Disse er enkle MovieClip symboler med forekomstnavn "play_mc" og "mute_mc "," progress_mc "og" fullness_mc "



Trinn 5: Spiller Holder

Denne spilleren er også en enkel svart form konvertert til en MovieClip med forekomstnavnet". holder_mc ".



Trinn 6: YoutubePlayer Class

Åpne YoutubePlayer.as og bygge et skjelett base klasse som strekker en MovieClip klasse
pakken {public class YoutubePlayer strekker MovieClip {offentlig funksjon YoutubePlayer ( ) {}}



Trinn 7: YoutubePlayer.as Importen

Vi har behov for å importere følgende klasser:
import flash.display.MovieClip; import flash.display.Loader; import flash.events.Event; import flash.system.Security; import flash.net.URLRequest;



Trinn 8: YoutubePlayer.as Variabler

.. og deretter setup følgende variabler (all koden i de kommende trinnene er kommentert):
Var spiller: Object; //objektet som vil ha spilleren lastet på Var loader: Loader; //lasteren som vil laste spilleren Var id: String; //videoens id Var playerStatus: String; //returnerer spillerne nåværende spille status Var progressRatio: Number; //returnerer forholdet forskjellen mellom de bytes lastet og bytes totale, fra 0 til 1, (nyttig for fremdriften bar) Var fullnessRatio: Nummer; //returnerer forholdet mellom forskjellen mellom hodet og de totale sekunder, fra 0 til 1, (anvendelige for fylde bar) Var ismuted: Boolean; //Returnerer true hvis spilleren er dempet



Trinn 9: YoutubePlayer.as YoutubePlayer ()

Når instansiert vi trenger videoens id sendes til YoutubePlayer () -funksjonen:
offentlig funksjon YoutubePlayer ($ id: String) {Security.allowDomain ("www.youtube.com"); //tillate tilgang fra youtube id = $ id //setter id loader = new Loader (); //instantiates lasteren loader.contentLoaderInfo.addEventListener (Event.INIT, onLoaderInit); //Etter lasting, kaller onLoaderInit loader.load (ny URLRequest ("http://www.youtube.com/apiplayer?version=3")); //begynner å laste prosessen}



Trinn 10: YoutubePlayer.as onLoaderInit ()

Her er onLoaderInit () funksjon, kalt etter at lasteren er instansiert (se forrige koden blokk).
privat funksjon onLoaderInit (hendelse: Hendelse): void {addChild (loader); //legger lasteren å iscenesette loader.content.addEventListener ("onReady", onPlayerReady); //kalles når spilleren er klar loader.content.addEventListener ("onError", onPlayerError); //kalles når spilleren har feil loader.content.addEventListener ("onStateChange", onPlayerStateChange); //kalles når de spiller staten endres}



Trinn 11: YoutubePlayer.as onPlayerReady ()

Hvis alt har gått ok så langt, er onPlayerReady () funksjon som heter:
privat funksjon onPlayerReady (hendelse: Hendelse): void {spiller = loader.content; //setter spilleren player.setSize (400, 225); //setter skjermstørrelsen player.loadVideoById (id) //laster video av id addEventListener (Event.ENTER_FRAME, updatePlayer); //oppdaterer spilleren}



Trinn 12: YoutubePlayer.as Andre nyttige arrangementer ()

Disse sporene komme godt med for debugging:
privat funksjon onPlayerError (hendelse: Hendelse): void {trace ("player error:" Object (event .data)); } //Jeg kunne ha brukt denne til å oppdatere playerStatus variabel, men jeg ønsket å vise deg en annen metode privat funksjon onPlayerStateChange (hendelse: Hendelse): void {trace ("player tilstand:" Object (event .data)); }



Trinn 13: YoutubePlayer.as Pakke

Dette er pakkemaskiner til ekstern kontroll:
offentlig funksjon playVideo () {player.playVideo ()} offentlig funksjon pauseVideo () {spiller .pauseVideo ()} offentlig funksjon stopVideo () {player.stopVideo ()} offentlig funksjon muteVideo () {player.mute ()} offentlig funksjon unmuteVideo () {player.unMute ()}



Trinn 14: YoutubePlayer.as updatePlayer ()

Bare en siste funksjon og klassen er ferdig:
offentlig funksjon updatePlayer (e) {ismuted = player.isMuted () //returnerer true hvis dempet //setter fremdriften Forholdet progressRatio = player.getVideoBytesLoaded () /player.getVideoBytesTotal () //setter fyllingsgraden fullnessRatio = player.getCurrentTime () /player.getDuration () //setter playerStatus for utendørs bruk switch (player.getPlayerState ()) { tilfellet -1: playerStatus = "påbegynte" break; case 0: playerStatus = "endte" break; case 1: playerStatus = "spille" break; case 2: playerStatus = "pauset" break; }}



Trinn 15: Main.as Importen

Forhåpentligvis har du allerede vet hvordan å bygge en grunnleggende dokument klasse (men hvis ikke, sjekk ut denne rask introduksjon). Inside, importere disse klassene:
import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import YoutubePlayer;



Trinn 17: Main.as main ()

Her er vår main () funksjon
offentlig funksjon main () {addEventListener (Event.ADDED_TO_STAGE, init);. //hindrer samtaler for å iscenesette før den er klar}



Trinn 16: Main.as Init ()

Et spørsmål du kan spørre er, "Hvordan kan jeg vite videoens id"

Det er veldig enkelt: ta url av filmen du er på jakt etter "http://www.youtube.com/watch?v=fJGLAo_7F_I", for eksempel; videoen id er 11-sifret nummer som bæres av v Var - i dette tilfellet "fJGLAo_7F_I"
privat funksjon init (e) {removeEventListener (Event.ADDED_TO_STAGE, init.); //fjerner den forrige lytteren youtubeplayer = new YoutubePlayer ("txqiwrbYGrs"); //instantiates spilleren med denne videoen id //setter opp knappene play_mc.buttonMode = mute_mc.buttonMode = true; play_mc.addEventListener (MouseEvent.CLICK, playPausePlayer); mute_mc.addEventListener (MouseEvent.CLICK, muteUnmutePlayer); holder_mc.addChild (youtubeplayer) //legger spilleren til spilleren holder //nullstiller fylde og fremgang fullness_mc.width = 1 progress_mc.width = 1 //oppdaterer fylde og fremgang addEventListener (Event.ENTER_FRAME, loop); }



Trinn 17: Main.as playPausePlayer ()

Her er funksjonen for vår enkel knapp som bruker "playerStatus" for å veksle mellom å spille og stanset:
privat funksjon playPausePlayer (e) {if (youtubeplayer.playerStatus == "spille") {youtubeplayer.pauseVideo (); } else {youtubeplayer.playVideo (); }}



Trinn 18: Main.as muteUnmutePlayer ()

På samme måte, her er funksjonen for vår knapp som bruker "ismuted" for å veksle mellom Slå demping:
privat funksjon muteUnmutePlayer ( e) {if (youtubeplayer.ismuted) {youtubeplayer.unmuteVideo (); } else {youtubeplayer.muteVideo (); }}



Trinn 19: Main.as loop ()

La oss finne ut hvordan filmens fremgang gjør ..
//multiplisere forholdet med den totale bredden av barene vil gi oss den ønskede lengden siden forholdet går fra 0 til 1 privat funksjon loop (e) {fullness_mc.width = youtubeplayer.fullnessRatio * 350 progress_mc.width = youtubeplayer.progressRatio * 350}



Konklusjon
< p> Som du ser, er det ganske enkelt å lage en enkel youtube spiller i AS3, bør du sjekke ut Player API referanse for en liste over funksjoner og parametere du kan bruke til å forlenge denne.

I håper du likte denne opplæringen, takk for lesing!



Previous:
Next Page: