Bruke Googles YouTube API i Android-appene dine

Mens jeg er en tillatt Android-fanboy, er jeg ikke over å anerkjenne områder der plattformen kan bruke forbedringer. I det siste har en av disse manglene i Android-tilbud til utviklere vært integrasjon med YouTube. Dette er et spesielt smertefullt poeng for oss fanboys fordi A) både Android og YouTube er Google-prosjekter, og B) kollegene mine som først og fremst jobber på iOS har hatt en relativt jevn og behagelig integrasjonsopplevelse med YouTube i noen tid nå ved å bruke iPhone's standard webview-komponent .

Heldigvis har ingeniørene på Google jobbet hardt bak kulissene. Nå i versjon 3.0 og fri for den "eksperimentelle" etiketten, kommer Google med sin YouTube API for å være klar for prime time. Dokumentasjonen lover: "... APIen lar applikasjonen din gi en fullverdig YouTube-opplevelse som inkluderer søk og oppdagelse, innholdsoppretting, videoavspilling, kontoadministrasjon og seerstatistikk."

Jeg vet ikke om deg, men jeg er klar for en prøvekjøring!

1. Du trenger en mobilenhet som kjører versjon 4.2.16 eller bedre av den offisielle YouTube-appen. Det er riktig, den underliggende tjenesten som brukes av Android YouTube Client API distribueres sammen med den faktiske YouTube-applikasjonen for Android. Mangelen på separasjon var litt nedslående for meg, men Google hevder at nødvendig stillas bør være tilgjengelig for alle enheter som kjører Android 2.2 eller nyere, og sammenkobling av tjenesten med appen reduserer det totale fotavtrykket på enheten.

2. Deretter trenger du en API-nøkkel. Det er gratis, men du trenger Google-kontoen din for å få den. Hvis du vil kjøre eksemplet på demoen som følger, må du få en API-nøkkel (siden jeg ikke har planer om å dele min med hele Internett). Du kan finne detaljerte instruksjoner her. (Hvis du ikke vil ta deg tid til å sende inn et SHA 1-fingeravtrykksertifikat, kan du la feltet være tomt foreløpig, og API vil godta alle samtalene dine. Bare husk å gå tilbake og begrense det til ditt egen pakke / apper før du slipper noe ut i naturen.)

3. Etter at du har registrert deg for en API-nøkkel, er du klar til å åpne Eclipse og starte et nytt Android-prosjekt. Husk å målrette minst Android 2.2.

4. Før vi går videre må vi laste ned klientbibliotekets filer. Pakk ut den komprimerte mappen, finn YouTubeAndroidPlayerApi.jar ( figur A ) og legg den til prosjektets / libs-mappen. Figur A

5. Høyreklikk glassfilen, og gå deretter til Build Path | Konfigurer Build Path. Klikk på knappen Legg til JAR ( figur B ). Figur B

6. Gå til JAR-valgdialogen, naviger til den nylig kopierte glassfilen og velg den ( Figur C ). Figur C

7. Deretter må vi åpne prosjektets AndroidManifest.xml-fil og legge til Internett-tillatelse.

 AndroidManifest.xml 
 "1.0" encoding = "utf-8" ?> 
 "Http://schemas.android.com/apk/res/android" 
 pakke = "com.authorwjf.youtubeapi" 
 android: versionCode = "1" 
 android: versionName = "1.0" > 
 android: minSdkVersion = "16" 
 android: targetSdkVersion = "17" /> 
 "android.permission.INTERNET"> 
 android: allowBackup = "true" 
 android: icon = "@ drawable / ic_launcher" 
 android: label = "@ string / app_name" 
 android: theme = "@ style / AppTheme" > 
 android: name = "com.authorwjf.youtubeapi.MainActivity" 
 android: label = "@ string / app_name" > 
 "android.intent.action.MAIN" /> 
 "android.intent.category.LAUNCHER" /> 

8. Vi modifiserer / res / layout-filen for å inkludere YouTubePlayerView fra den nylig tilførte glassfilen.

 activity_main.xml 
 "Http://schemas.android.com/apk/res/android" 
 xmlns: tools = "http://schemas.android.com/tools" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: orientering = "vertikal" 
 android: layout_gravity = "sentrum" 
 android: gravity = "center_horizontal" > 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: text = "Hello YouTube API" 
 android: layout_margin = "12dip" /> 
 android: id = "@ + id / youtube_view" 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: layout_margin = "12dip" /> 

9. Vi får tilgang til komponenten fra src-filen vår ved å utvide YouTubeBaseActivity.

 MainActivity.java 
 pakke com.authorwjf.youtubeapi; 
 import com.google.android.youtube.player.YouTubeBaseActivity; 
 import com.google.android.youtube.player.YouTubeInitializationResult; 
 importer com.google.android.youtube.player.YouTubePlayer; 
 importer com.google.android.youtube.player.YouTubePlayerView; 
 import com.google.android.youtube.player.YouTubePlayer.Provider; 
 import android.os.Bundle; 
 import android.widget.Toast; 
 offentlig klasse MainActivity utvider YouTubeBaseActivity implementerer YouTubePlayer.OnInitializedListener { 
 statisk privat finale String DEVELOPER_KEY = "legg til din egen nøkkel her!"; 
 statisk privat finale String VIDEO = "4SK0cUNMnMM"; 
 @Overstyring 
 beskyttet tomrom onCreate (Bundle savedInstanceState) { 
 super .onCreate (savedInstanceState); 
 setContentView (R.layout. Activity_main ); 
 YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById (R.id. Youtube_view ); 
 youTubeView.initialize ( DEVELOPER_KEY, dette ); 
 } 
 @Overstyring 
 public void onInitializationFailure (leverandørleverandør, YouTubeInitializationResult-feil) { 
 Skål. makeText ( dette, "Å nei!" + error.toString (), Toast. LENGTH_LONG ) .show (); 
 } 
 @Overstyring 
 public void onInitializationSuccess (leverandørleverandør, YouTubePlayer-spiller, boolean wasRestored) { 
 player.loadVideo ( VIDEO ); 
 } 
 } 
Som du ser er det oppsettet, ikke selve koden, som representerer størstedelen av arbeidet. Til tross for dokumentasjonen som antydet at spillerutsikten ville fungere på Android-emulatoren, klarte jeg ikke å finne en plattform der det var tilfelle selv etter å ha oppdatert alle verktøyene mine og SDK-ene til de siste og beste utgivelsene ( figur D ). Figur D

Heldigvis virket det som om applikasjonen fungerte bra på Nexus 4-maskinvaren min ( figur E ). Figur E

Mine siste tanker

Dessverre virker API fortsatt litt komplisert for meg - mindre enn på programmeringssiden og mer på oppsettet. Imidlertid ser det ut til å virke på enheten min (hvis ikke emulatoren), så hvis ytterligere tester viser at den fungerer konsekvent over Android-maskinvarelandskapet, er jeg villig til å investere den ekstra innsatsen.

For de av dere som ønsker å prøve dette prosjektet på egne enheter, kan du laste det ned her. Bare husk at du må registrere deg for din API-kode for utvikleren og sette den inn i MainActivity.java-filen før appen fungerer.

© Copyright 2021 | pepebotifarra.com