2013-08-11 8 views
14

Also, ich bin derzeit mit Android-Programmierung in meiner Freizeit herumspielen, und ich benutze Android Studio als meine ideale Wahl. Ich versuche gerade eine sehr einfache App mit der Youtube API zu erstellen. Mein Problem ist, dass ich nicht herausfinden kann, wie ich die API tatsächlich in meine Anwendung bringen kann. Ich habe Datei> Projektstruktur verwendet, um das Zeug zu meiner Anwendung hinzuzufügen, aber das funktioniert nicht von selbst. Es hört auf, mich wegen Syntaxfehlern anzuschreien, aber wenn es Fehler kompiliert.Hinzufügen von YouTube Data API zu Android Studio

Ich recherchierte das ein bisschen und habe festgestellt, dass ich Sachen zu build.gradle oder settings.gradle (oder beides) hinzufügen muss, aber ich habe keine definitive Antwort auf genau gefunden, was zu tun ist. Alles, was ich bisher versucht habe, hat nicht funktioniert. Also, wenn jemand könnte entweder mir erklären, was ich zu tun habe, oder mich an einen Ort zu verbinden, wo es erklärt, was zu tun wäre toll

--edit--

ich jetzt so verwirrt bin. Ich habe ein neues Projekt gestartet. Ich habe die libs hinzugefügt und konnte trotzdem kompilieren. Ich habe dann die Importe hinzugefügt und es hat Fehler darüber geworfen. Ich habe dann diese an die build.gradle und es war in der Lage perfekt

compile fileTree(dir: 'libs/youtube', include: '*.jar') 
compile fileTree(dir: 'libs/youtube/libs', include: '*.jar') 

zu kompilieren Aber wenn ich diesen Code hinzugefügt, die die Bibliothek

/** Global instance of the HTTP transport. */ 
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); 

/** Global instance of the JSON factory. */ 
private static final JsonFactory JSON_FACTORY = new JacksonFactory(); 

/** Global instance of Youtube object to make all API requests. */ 
private static YouTube youtube; 

die Syntax war in Ordnung, aber es warf einen Fehler erfordert auf Kompilieren

Gradle: Execution failed for task ':Apitest:dexDebug'. 
> Failed to run command: 

und wurde von etwa 100 Zeilen von Dateipfaden gefolgt

Irgendwelche Ideen, was ich falsch mache?

+0

Dies könnte helfen http://www.gadgetsaint.com/android/play-youtube-android-youtube-player-api/#.WOtVXPl96Hs – ASP

Antwort

34

Genau diese Abhängigkeit in gradle Datei hinzufügen:

compile 'com.google.apis:google-api-services-youtube:v3-rev181-1.22.0' 

und verwenden Objekt YouTube.

Referenz: https://developers.google.com/api-client-library/java/apis/youtube/v3

+0

vielen Dank –

+0

Nun, ich dachte, das funktioniert, aber es hat tatsächlich dazu geführt, dass es kaputt gegangen ist. Das war aber mein eigenes Tun. Ich brauche nur den Spieler. nicht die Daten api –

8

Schritt 1: YoutubeAndroidPlayerApi.jar von https://developers.google.com/youtube/android/player/downloads/

Schritt 2 Herunterladen: Paste es in Libs innerhalb app Ordner Projektordner

Schritt 3: Fügen Sie folgende Zeile zu bauen .gradle in App-Ordner des Projekts:

compile files('libs/YouTubeAndroidPlayerApi.jar') 

Schritt 4: Importe Aktivität im Anschluss an die YouTubeBaseActivity und implementiert YouTubePlayer.OnInitializedListener

import com.google.android.youtube.player.YouTubeBaseActivity; 
import com.google.android.youtube.player.YouTubeInitializationResult; 
import com.google.android.youtube.player.YouTubePlayer; 
import com.google.android.youtube.player.YouTubePlayerView; 
import com.google.android.youtube.player.YouTubePlayer.Provider; 

Schritt 5 erweitert: Inside OnCreate Methode:

//Make sure you initialize youtube player 

YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); 

youTubeView.initialize(YoutubeAPIKey, this); 

Wo YouTubeAPIKey würden Sie von Google-Konsole erhalten, nachdem Sie Ihr Projekt im Web-Modus registrieren, wählen Sie nicht mobil e Domain Android oder jede

Schritt 6:

@Override 
public void onInitializationFailure(Provider arg0, 
     YouTubeInitializationResult error) { 
    // TODO Auto-generated method stub 
    Toast.makeText(this, "Oh no!  
    "+error.toString(),Toast.LENGTH_LONG).show(); 

} 

@Override 
public void onInitializationSuccess(Provider arg0, YouTubePlayer player, 
     boolean arg2) { 
    // TODO Auto-generated method stub 
    player.loadVideo(VIDEO_ID); 
} 

Wo VIDEO_ID von RESTful Anruf Youtube API bei abgerufen wird:: Überschreiben von Methoden in der Schnittstelle implementiert "https://www.googleapis.com/youtube/v3/search" mit geeigneten Parametern in GET übergeben, wie , "q, relevanceLanguage, Typ, Schlüssel" etc.

+0

Das Hinzufügen von 'compile files ('libs/... jar')' ist nicht notwendig. Der Dateibaum ist bereits standardmäßig vorhanden –

Verwandte Themen