Hú, jó sokat szenvedtem a YouTube API-val, mert a top találatok a Google keresőben mind elavultak. Most itt összeszedem, hogyan kell YouTube videót YouTubePlayerView segítségével lejátszani, aztán nekem is meglesz, és más is megtalálhatja magyar nyelven.
Tartalomjegyzék
1. lépés: API letöltése és beillesztése a projektbe
Első lépésként le kell tölteni a legfrissebb YouTube API-t innen: https://developers.google.com/youtube/android/player/downloads
Ezt a zip fájlt ki kell csomagolni, és a libs könyvtárból a YouTubeAndroidPlayerApi.jar fájlt át kell másolni az appunkba. Ehhez az Android nézetről át kell váltani a Project Files nézetbe, majd ott az app könyvtáron belül a libs könyvtárba illeszteni a jar fájlt.
Ezután vissza lehet váltani Android nézetre, és a meg kell nyitni a build.gradle (Module: app) fájt. Ott a dependencies-be be kell tenni ezt a függőséget:
compile files('libs/YouTubeAndroidPlayerApi.jar')
2. YouTubePlayerView beillesztése a layoutba
A következő lépés a YouTubePlayerView beillesztése a layoutba, ez les az, ahol a videó megjelenik majd. Itt egy minimál kód, ezt lehet tetszés szerint bővíteni:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.google.android.youtube.player.YouTubePlayerView android:id="@+id/player" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintDimensionRatio="16:9" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
3. Fejlesztői kulcs kérése a Google Developers-től
A YouTube API használatához Developer Key-t kell kérni a Google Developerstől. Ennek lépései:
- Google Developers regisztráció
Regisztráljunk egy fiókot a https://developers.google.com/ címen
- Projektek felkeresése a Developers konzolon
Nyissuk meg a saját projekteket a Developers konzolon, vagy ide kattintva: https://console.developers.google.com/project
- Új projekt létrehozása
Hozzunk létre egy új projektet tetszőleges névvel a CREATE PROJECT gomb megnyomásával
- Library megnyitása
Nyissuk meg a bal felső hamburger menüt, majd válasszuk a Library menüpontot
- YouTube Data API v3 kiválasztása
A Library-n belül lefelé görgetve keressük meg a YouTube sort, majd ott kattintsunk a YouTube Data API v3 dobozra
- API engedélyezése
Az ENABLE gomb megnyomásával engedélyezzük az API-t
- Credentials létrehozása
A megjelenő ablakban kattintsunk a jobb felső CREATE CREDENTIALS gombra
- API kiválasztása
A megjelenő felületen válasszuk ki a lehulló menüben a YouTube Data API v3 lehetőséget
- Hívás helyének megadása
A Where will you be calling the API from? kérdés azt kérdezi, honnan fogjuk meghívni az API-t, itt válasszuk a az Android lehetőséget.
- Adat nyilvánosságának megadása
A hívás helye alatt a What data will you be accessing? kérdésre adjuk meg, hogy Public data (nyilvános adatokkal) fogunk dolgozni.
- Credentials lekérése
Végül a What credentials do I need? gombra kattintva kérhetjük le a Credentials-t
- API key kimásolása
A megjelenő felületen másoljuk ki a Here is your API key alatt látható kulcsot, majd a Done gombra kattintva zárjuk be a felületet.
4. YouTube videó betöltése és lejátszása
Végül nem marad más feladat, mint betölteni a videót, és lefuttatni a projektet. Ez most egy alap kód, és nem is magyarázom el, mert este fél 10 van, aki ebből nem érti, ő inkább az Android alapokkal kezdje. Két dolog azért fontos: Ahol a DEVELOPER_KEY van, oda kell beilleszteni az fentiekben megszerzett developer key-t.
A youTubePlayer.cueVideo paramétere pedig a YouTube videó linkje, ami nálam mindig a Liza és a Rókatündér zejéne. Az eredeti URL ez: https://www.youtube.com/watch?v=SdnjROOeS4c , így most a watch?v= mögötti részt kell kimásolni és a kódba illeszteni.
Itt a Java kód is:
package com.viktorjava.youtubetest; import android.os.Bundle; 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; public class MainActivity extends YouTubeBaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.player); youTubePlayerView.initialize("AIzaSyA7zi9iPdJ-2rrzOHHyxfeWsY1VQ_vT1cw", new YouTubePlayer.OnInitializedListener() { @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { youTubePlayer.cueVideo("SdnjROOeS4c"); } @Override public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { } }); } }
Képernyőképek
Az applikáció futtatása állítva:
és fektetve: