En titt på popcorn

I dag skal vi ta en titt på Popcorn.JS, et bibliotek fra Mozilla som gjør det veldig enkelt å manipulere en nettside basert på nåværende posisjon av en video. Dette lar deg lage rike "hypermedia" -opplevelser rundt videoinnholdet ditt.

Med Popcorn kan du vise informasjon om skuespillere som er på skjermen, eller vise Google Street View-kart over steder i videoen.

Ta en titt på demoversiden for å se hva vi skal oppnå - en blanding av bilder, Google Maps, Wikipedia, tagging, RSS-feeder, Facebook og webinnhold - alt i et 22 sekunders videoklipp.


Om Popcorn

Popcorn gjør video arbeid som Internett. Vi lager verktøy og programmer for å hjelpe utviklere og forfattere til å lage interaktive sider som supplerer video og lyd med rikt webinnhold, slik at kreasjonene dine kan leve og vokse på nettet.

Popcorn gir en samling av plugins for enkelt å trekke i eksterne data til skjermen. For eksempel, for å vise en utdrag fra Wikipedia-artikkelen om dronningen, vil du bruke denne lille utdraget:

 popcorn.wikipedia (start: 12, end: 14, mål: 'wiki', src: 'http://en.wikipedia.org/wiki/Elizabeth_II', tittel: 'The Queen', numberofwords: 40);

Dette trekker i de første 40 ordene fra Dronningens Wikipedia-side inn i elementet med en ID av wiki. Den vises på skjermen på 12 sekunder, og forsvinner om 14 sekunder.

Du kan like enkelt vise et Google Map:

 pop.googlemap (start: 10, end: 12, mål: 'kart', type: 'ROADMAP', plassering: 'England', zoom: 6);

Dette viser et Google Map of England i #kart på 10 sekunder, og forsvinner ved 12. Du kan stille inn typeinnstillingen til HYBRID, VEIKART, SATELLITT, TERRENG eller Street og vise mer nøyaktige kart ved å sette inn lat og lng (og for Street View, the overskrift og tonehøyde for mer nøyaktige bilder).
En fullstendig liste over tilgjengelige alternativer for Google Maps-pluginet finnes på Popcorn-siden.


Starter

Lag din filstruktur slik:

 | index.html | css / | - style.css | js / | - popcorn.js | - script.js | img / | vid /

HTML

Innsiden index.html, skriv inn følgende basemal:

     En titt på popcorn    

Demo opprettet av Dan Harper for Nettuts +, ved hjelp av PopcornJS.

Vi har en enkel HTML5-mal, med en § # side som vi skal bruke til å vise mesteparten av innholdet fra popcorn. De div # wikien vil bli brukt til å vise popcorndata fra Wikipedia - den eneste grunnen til at det blir sitt eget element er å hjelpe til med styling.

§ # hoved er hvor video sitter: Vi har spesifisert 3 videoformater:

  • WebM for Chrome, Firefox og Opera
  • MP4 for Safari og Internet Explorer
  • ogv for eldre versjoner av Chrome, Firefox og Opera

Nedenfor er videoen § # tags hvor vi viser "tags" ved hjelp av popcorn.

Straks før avslutningen tag, vi inkluderer JavaScript-filene.

CSS

Inne i din css / style.css fil, legg til i følgende grunnleggende styling. Det er ganske grunnleggende, og jeg vil ikke gå over det for denne opplæringen:

 kropp font-family: sans-serif; farge: # 444;  a: link, a: besøkt farge: orangeRed; tekst-dekorasjon: ingen;  a: svever, a: aktiv farge: crimson; tekst-dekorasjon: understreke;  #main width: 640px; flyte: venstre; margin: 0 0 0 10px;  #tags border: 5px solid #eee; border-radius: 5px; polstring: 5px 10px;  #tags en linjehøyde: 30px; vertikaljustering: topp;  #side border: 5px solid #eee; border-radius: 5px; høyde: 405px; bredde: 390px; flyte: venstre; overløp: skjult; polstring: 10px; stilling: relativ;  video, iframe border-radius: 5px; grense: 5px solid #eee; -webkit-bakgrunnsbilder: innhold;  #wiki a color: # 444; skriftstørrelse: 20px;  #wiki a + p margin: 5px 0 0;  #webside bredde: 100%; høyde: 460px;  #tags img width: 30px; høyde: 30px;  footer clear: both; skriftstørrelse: 12px; 

Bilder

Lagre følgende filer i img / katalog - vi vil vise dem på siden med Popcorn:

(Bilder av dronningen og koppen te er i det offentlige området. Den kjekke mannen er meg.)

videoer

Høyreklikk og lagre de følgende tre videofilene til din vid / katalogen. De er alle de samme videoene, lagret i tre forskjellige formater:

vids / demo.webm
vids / demo.mp4
vids / demo.ogv

Popcorn støtter også videoer fra YouTube og Vimeo. Klikk på linkene for en demonstrasjon av pluginene.

Inkluder popcorn

Til slutt, inkludere Popcorn i prosjektet ditt ved å lagre følgende inn JS / popcorn.js:

http://popcornjs.org/code/dist/popcorn-complete.min.js

I et produksjonsmiljø anbefales det ikke egentlig å inkludere hele Popcorn-biblioteket med alle plugins, som vi gjør her. I stedet bruker du Popcorn Build Tool til å lage din egen versjon av biblioteket med bare de pluginene du trenger.


Hent popping!

Innsiden JS / script.js inkludere følgende for å komme i gang med Popcorn:

 document.addEventListener ("DOMContentLoaded", funksjon () var pop = Popcorn ('# demo_video', pauseOnLinkClicked: true); pop.play (););

Her lager vi en ny Popcorn-forekomst på #demo_video (IDen vi ga vår video element). Vi passerer også Popcorn the pauseOnLinkClicked argumentet slik at videoen er pauset når brukeren klikker en kobling.

Vi kaller da spille() Metode for å instruere Popcorn til automatisk å spille av videoen. Fjern denne linjen hvis du hellere vil vente på at brukeren eksplisitt treffer "Play".

Last opp siden i nettleseren din, og hvis videoen automatisk spilles, er du på rett spor!

Trinn 1: Tag "Dan Harper"

Hvis du ser demo videoen gjennom igjen, vil du legge merke til den første Popcorn-hendelsen vi oppretter, er en "tag" på 1s som viser mitt navn, lenke og bilde. La oss lage det først, og vi legger til i hver hendelse som de oppstår, i kronologisk rekkefølge.

For å lage denne taggen bruker vi Popcorns innebygde Tag This Person-plugin. Hvis du ser på plugin-siden, ser du at plugin tar et objekt som et argument med følgende egenskaper som alternativer:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Person [streng]: navn på personen som skal merkes
  • Bilde [streng]: URL til bildet av personen som er merket (valgfritt)
  • Href [streng]: URL til personen som er merket (valgfritt)

Under pop.play (); legg til følgende:

 pop.tagthisperson (start: 1, target: 'tags', person: 'Dan Harper', bilde: 'img / danharper.jpg', href: 'http://danharper.me');

Det er veldig enkelt å jobbe med Popcorn!

Du vil legge merke til at vi ikke spesifiserer eksplisitt en slutt tid. I stedet stopper Popcorn plugin når videoen slutter. (Personlig vil jeg ha muligheten til å ha innholdet vedvarer etter at videoen er avsluttet, men Popcorn ser ikke ut til å tilby denne funksjonaliteten ennå).

Ta en titt på siden i nettleseren din, og du bør se at min etikett vises på 1s.

Trinn 2: Vis 'Nettuts +' -logoen

På 2 sekunder vises Nettuts + -logoen til siden av videoen, og forsvinner om 10 sekunder. Dette er like enkelt som å merke en person. Bildet plugin lar deg vise et bilde i et element.

Som alle Popcorn-plugins, bilde tar et objekt som et argument. bilde aksepterer følgende alternativer:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Src [streng]: URL til bildet som skal vises
  • Href [streng]: URL for å gjøre bildet til en link til (valgfritt)
  • Tekst [streng]: Tekst til overlegg på bildet (valgfritt)

Å bruke dette pluginet; legg til følgende under .tagthisperson (...); begivenhet:

 pop.image (start: 2, end: 10, target: 'side', href: 'http://net.tutsplus.com', src: 'img / nettuts.jpg');

Som du kan se bruker vi alle tilgjengelige alternativer, med unntak av tekst. Oppdater nettleseren din og prøv den! Logoen skal vises i sidelinjen mellom 2 og 10 sekunder.

Trinn 3: Vis de siste Nettuts + innleggene

Googlefeed er en av pluginene som virkelig viste meg potensialet for Popcorn. Gi den nettadressen til en RSS-feed, og den vil vise innleggene i en liten widget inne i elementet du angir.

I demovideoen vises den på 4 sekunder til siste 10 sekunders markering.

Googlefeed aksepterer følgende alternativer for tilpasning:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Url [streng]: URL til RSS-feed for å analysere
  • Tittel [streng]: tittel som skal vises over strømmen (valgfritt)
  • Orientering [streng]: vertikal [standard] eller horisontal (valgfri)

Med disse alternativene i tankene, la oss legge til plugin for våre Popcorn-hendelser:

 pop.googlefeed (start: 4, end: 10, target: 'side', url: 'http://net.tutsplus.com/feed/');

Så lett, rett?

Trinn 4: La oss bli sosialt

Facebook-plugin gjør det veldig enkelt å vise sosiale elementer fra Facebook til bestemte tider i videoen din. For eksempel, i et virkelighetseksempel, kan du invitere seerne til å Like deg på Facebook, eller dele kommentarer om showet - og få boksvisningen på skjermen i sanntid; som om ved magi;)

Dette pluginet inneholder mange alternativer, hvorav de fleste ikke er relevante for våre behov - viser en liknende boks - så for den fullstendige listen over alternativer, sjekk ut plugin-siden på Popcorn-siden.

Alternativene som angår oss, er imidlertid:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Skriv inn [streng]: SOM [misligholde], Like-BOX, AKTIVITET, FACEPILE, DIREKTESTRØMMING etc. (valgfritt)
  • Href [streng]: Nettadressen til siden å like; standard til den aktuelle siden (valgfritt)
  • Handling [streng]: bør Like-knappen si som [standard] eller anbefale (valgfri)

Vis vår Like-knapp på siden med følgende:

 pop.facebook (start: 8, end: 10, target: 'side', href: 'http://net.tutsplus.com');

Oppdater siden, og Facebook Like-knappen skal dukke opp på 8 sekunder, og forsvinner med RSS-feed og Nettuts + bilde på 10 sekunder.

Dette blir så enkelt, din bestemor kunne gjøre det, riktig?

Merk: I testen fant jeg Facebook-knappen for å være ganske temperamentsfull og noen ganger vises før den kommer til å vises, eller forsvinner tidlig.

Trinn 5: På plassering

Om 10 sekunder vil vi vise et Google Map of England i 2 sekunder. Som du kanskje har gjettet, er det en app for det!

Google Maps-plugin-modulen lar deg vise hvilken som helst kart APIen tillater (Road, Satellite, Terrain, Hybrid eller Street View). Alternativene er som følger:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Plassering [streng]: adresse / sted for å sentrere kartet på *
  • Lat [tall]: breddegrad for å sentrere kartet på *
  • Lng [tall]: lengdegrad for å sentrere kartet på *
  • Skriv inn [streng]: HYBRID [misligholde], VEIKART, SATELLITT, TERRENG eller Street (valgfri)
  • Zoom [nummer]: zoomnivå, standard til 0 (valgfritt)
  • Overskrift [nummer]: Orientering av kamera i grader i forhold til ekte nord (kun Street View) (valgfritt)
  • Pitch [nummer]: vertikal orientering av kameraet (bare Street View) (valgfritt)

* Du må oppgi enten a plassering eller en lat og lng

Så la oss ta med England-kartet på siden. Legg til følgende i skriptet ditt:

 pop.googlemap (start: 10, end: 12, mål: 'side', type: 'ROADMAP', plassering: 'England', zoom: 6);

Hvorfor ikke prøve noen forskjellige alternativer - som å zoome på en bestemt bygning i Street View? Her er en til å begynne med:

 pop.googlemap (start: 10, end: 12, mål: 'side', type: 'STREETVIEW', lat: 50.844537, lng: -1.081544, zoom: 2, overskrift: 145, tonehøyde: 1);

Trinn 6: Møt dronningen

Neste i demonstrasjonen, på 12 sekunder, legger vi til en ny tagg for dronningen, og i sidebjeldet viser et bilde av henne, og inneholder noe innhold fra Wikipedia. Bildet og Wikipedia-innholdet forsvinner om 14 sekunder.

Vi har allerede gått over tagthisperson og bilde plugins, så implementering av disse burde være enkle. Hvorfor ikke prøve å gjøre disse biter selv? Fortsett, jeg venter.

Gjort det? Sliter? Eller bare for lat? Vel, her er svaret uansett:

 pop.tagthisperson (start: 12, target: 'tags', person: 'The Queen', bilde: 'img / queen-large.jpg', href: 'http://royal.gov.uk'); pop.image (start: 12, end: 14, target: 'side', src: 'img / queen-large.jpg');

La oss nå se på Popcorns Wikipedia-plugin. Det tar noen alternativer å spesifisere hvilket innhold du vil ha, og hvor mye av det:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Src [streng]: URL for Wikipedia-artikkelen som skal vises
  • Tittel [streng]: angi en egendefinert tittel for artikkelen (valgfritt)
  • Numberofwords [number]: antall ord som skal vises, standard til 200 (valgfritt)
  • Lang [streng]: språk artikkelen er i (standard til engelsk) (valgfritt)

Med disse alternativene i tankene, prøv å lage denne biten selv. Pluginnavnet er wikipedia.

 pop.wikipedia (start: 12, slutt: 14, mål: 'wiki', src: 'http://en.wikipedia.org/wiki/Elizabeth_II', tittel: 'The Queen', numberofwords: 40);

Jeg setter en egendefinert tittel for artikkelen som jeg helst vil vise tittelen 'The Queen' i stedet for 'Elizabeth II'. Vær også oppmerksom på at vi har satt inn mål til #wiki - som jeg nevnte tidligere, er dette bare for kosmetiske formål.

Trinn 7: Te?

En av de siste delene av interaktivitet i demoen er utseendet på et bilde av en kopp te og den nye taggen av 'Tea' på 14 sekunder, og slutter med 16 sekunder.

Som vi har brukt begge tagthisperson og bilde plugins flere ganger allerede, vil jeg ikke bry meg om å forklare denne koden:

 pop.tagthisperson (start: 14, target: 'tags', person: 'Tea', bilde: 'img / cup-of-tea.jpg', href: 'http://en.wikipedia.org/wiki/ Svart te' ); pop.image (start: 14, end: 16, target: 'side', href: 'http://en.wikipedia.org/wiki/Black_tea', src: 'img / cup-of-tea.jpg' );

Faktisk, hvorfor ikke prøv å bruke Popcorn's Flickr-plugin for å laste et bilde av en kopp te, i stedet for å laste en lokal med bilde.

Trinn 8: IFrammer?

Til slutt, på slutten av demonstrasjonsvideoen laster vi opp den offisielle Mozilla Popcorn-siden i en IFrame i #side. Dette er, som du kanskje regner med, oppnådd ved hjelp av en annen av Popcorns plugins - nettside. Dette pluginet tar bare noen få alternativer:

  • Start [nummer]: tid du vil at pluginet skal utføres
  • Slutt [nummer]: tid du vil at plugin skal stoppe
  • Mål [streng]: ID av elementet for å vise innholdet
  • Src [streng]: URL som skal vises i iframe
  • Id [streng]: IDen du vil ha til rammen (valgfritt)

Så inkludert en iframe på siden er så enkelt som:

 pop.webpage (start: 16, target: 'side', src: 'http://mozillapopcorn.org/');

Popcorn er klar!

Last opp siden i nettleseren din til finalen - hvorfor ikke ta en pose med popcorn for å nyte showet med? (ha ha).

Jeg håper virkelig du finner Popcorn så interessant som jeg gjør. Potensialet for dette er utrolig, og det kan virkelig presse grensene for det vi vurderer interaktivt innhold.

Quiz-show kan bruke dette til lett å gjøre det mulig for seere å spille sammen i nettleseren, magasinutstillinger kan invitere deg til å bli med på sosiale medier som Facebook, Twitter eller G +. Dokumentarer kan vise tilleggsinformasjon om hva som blir vist.

Eller et komplekst detektive kriminaldrama kan bruke nettleseren som detektivens notatblokk - legge til ledetråder, vitner, ofre og mistenkte på skjermen i sanntid.

Det er allerede en rekke prosjekter som inkorporerer Popcorn på en innovativ måte. Jeg kan ikke vente på å se hva fremtiden har.

Ekstra, Ekstra! Les alt om det!

En rekke biblioteker og søsterprosjekter er allerede oppskåret i Popcorn økosystemet. Mozilla har en alfa-trinns app for å lage Popcorn-innhold uten å måtte skrive kode, kalt Popcorn Maker, som vil være bra for banebrytende filmskapere som ønsker å våge seg inn i dette nye nettleserbaserte landet på nettet.

Andre prosjekter, som beskrevet på det offisielle nettstedet, inkluderer:

  • Instapoppin - en brukervennlig tilnærming til å skape Popcorn-brukeropplevelser med bare ekstra HTML-attributter
  • Seriously.js - et WebGL-effekter bibliotek for video
  • Sequencer.js - kjede flere medieobjekter til en enkelt sekvens
  • butter.js - API-en som støtter Mozillas Popcorn Maker-app
  • Popcorn Kernel - En enkel webserver for klient-server Popcorn-opplevelser

Plugins

En fullstendig liste over Popcorn-plugins finner du her, eller for lat (jeg har merket dem vi har prøvd):

  • Openmap
  • Kode
  • Facebook
  • GML
  • Googlefeed
  • link~~POS=TRUNC
  • Lowerthird
  • Bart
  • Pause
  • Processing.js
  • Tidslinje
  • Wordriver
  • Merk denne personen
  • lastfm
  • Bilde
  • Attribution
  • Wikipedia
  • Nettside
  • fotnote
  • Subtitle
  • Flickr
  • Google Kart
  • Twitter

Merk: Hvis denne artikkelen er litt datert når du leser dette, kan pluginlisten ha vokst betydelig, så sjekk ut det offisielle nettstedet for en oppdatert liste!