안드로이드 유튜브 플레이어 예제
안드로이드 유튜브 플레이어 홈페이지
프로젝트의 gradle 3.1.4에서 진행되고 있고
Kotlin과 Retrofit을 기반으로 프로젝트가 진행될 것 입니다.
https://developers.google.com/youtube/android/player/?hl=ko 를 접속합니다.
해당 홈페이지는 youtube에 관련된 api가 정리된 doc입니다.
들어가게 되면 Orerview 밑에 '다운로드'가 보입니다.
다운로드 현재 버전은 2018년 10월 24일 기준으로 1.2.2 버전을 사용하고 있습니다.
zip을 다운로드하고 압축을 한 번 풀어줍니다.
저는 압축을 안 풀어줘서 왜 안되나 했습니다ㅜㅜ
압축파일에는 YouTubeAndroidPlayerApi.jar라는 것이 있습니다.
해당 파일을 안드로이드 스튜디오의 Dependencies에 추가해 줄 것입니다.
이제 안드로이드 스튜디오로 돌아와서
File - Project Structure에 추가 해줍니다.
Add를 눌러주고 Jar Dependency를 눌러주고 이전에 풀어놓은 jar를 추가해서 디펜던시를 추가해줍니다.
안드로이드스튜디오의 gradle을 들어가보면 implementation files('libs/YouTubeAndroidPlayerApi.jar') 이 추가된 것을 볼 수 있을 것 입니다.
하지만 API를 사용하기 위해서는 자신의 안드로이드 스튜디오의 프로젝트를 api에 연결시켜야 합니다.
https://console.developers.google.com/apis/credentials?hl=ko
해당 url을 들어가줍니다. 이곳은 credential을 추가할 수 있는 페이지로서 사용자 인증 정보를 추가할 수 있습니다.
밑에는 제가 만들어 놓은 API키 리스트들이고
해야하는 것은
[사용자 인증 정보 만들기 - API 키]
입니다.
이렇게 API키가 만들어집니다.
추후엔 해당 API키를 복사해서
Android Studio의 String xml에 넣어서 관리할 것 입니다.
2018/10/24 - [Android 공부] - 안드로이드 gitignore 예제
해당 게시글처럼 xml에 집어넣어 api를 관리할 것 입니다.
youtube_key라는 변수에 api 키값을 넣었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" tools:context=".Activity.YoutubePlayerActivity"> <com.google.android.youtube.player.YouTubePlayerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/youtube_view"/> </LinearLayout> | cs |
1 | <uses-permission android:name="android.permission.INTERNET" /> | cs |
혹시 모르니 manifests에 인터넷 퍼미션을 하나 넣어줬습니다.
그리고 Activity에는
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class YoutubePlayerActivity : YouTubeBaseActivity(), YouTubePlayer.OnInitializedListener { override fun onInitializationFailure(p0: YouTubePlayer.Provider?, p1: YouTubeInitializationResult?) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun onInitializationSuccess(p0: YouTubePlayer.Provider?, youtubePlayer: YouTubePlayer?, isReady: Boolean) { if (!isReady) { val playKey = intent.getStringExtra("playKey") youtubePlayer!!.cueVideo(playKey); } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_youtube_player) youtube_view.initialize(getString(R.string.youtube_key), this@YoutubePlayerActivity) } } | cs |
JAVA 기준으로 해석하자면 youtube_view를 findviewById를 해주고 난 후에
해당 view를 initialize를 해준 후에 R.string.youtube_key를 호출해주고, context를 입혀줍니다.
그리고 YouTubePlayer.OnInitializedListener를 상속받아서
onInitialiizationSuccess에 호출할 youtubePlayer의 key를 받아서 youtubePlayer객체를 오버라이드
받은 것을 cueVideo를 해주게 됩니다.
해당 내용은 2탄에서 더 상세하게 다루겠습니다.
1인 개발자 감자튀김 입니다.
다이어리 어플리케이션과 시간표 어플리케이션을
출시해서 관리하고 있습니다.
2018/10/21 - [나의 일기] - (리뷰) 시간표 어플리케이션 - 담다
2018/07/15 - [나의 일기] - #담아두다 #일상 #다이어리 #어플리케이션