在Android應用程式使用YouTube API來嵌入視頻 - ZenDei

文章推薦指數: 80 %
投票人數:10人

在Android版YouTube播放器API使您可以將視頻播放功能到你的Android應用程式。

該API允許您載入和播放YouTube視頻(和播放列表),並自定義和控制視頻 ... 首頁 NET技術編程語言軟件設計WEB前端手機開發數據庫技術操作系統 在Android應用程式使用YouTubeAPI來嵌入視頻 来源:http://www.cnblogs.com/miaoqing/archive/2016/02/17/5195590.html -Advertisement- 在Android版YouTube播放器API使您可以將視頻播放功能到你的Android應用程式。

該API允許您載入和播放YouTube視頻(和播放列表),並自定義和控制視頻播放體驗。

您可以載入或暗示的視頻嵌入到你的應用程式的用戶界面的球員視圖。

然後,您可以通過編程式控制制播放。

例如播放,暫停,或尋求在 在Android版YouTube播放器API使您可以將視頻播放功能到你的Android應用程式。

該API允許您載入和播放YouTube視頻(和播放列表),並自定義和控制視頻播放體驗。

您可以載入或暗示的視頻嵌入到你的應用程式的用戶界面的球員視圖。

然後,您可以通過編程式控制制播放。

例如播放,暫停,或尋求在載入視頻的特定點。

您可以註冊事件偵聽器來獲取某些事件,比如玩家載入視頻或播放狀態改變回調。

API還具有輔助功能,支持方向的變化,以及過渡到全屏播放。

使用Android的YoutubeAPI之前,您需要註冊您的應用程式,包括您的數字簽名的apk在谷歌開發者控制台文件的公證書。

要註冊應用程式,請按照下列步驟。

要開始,創建一個新的項目。

我打電話給我VideoTube。

在AndroidStudio的嚮導的下一個屏幕上選擇API10,空白活動和MainActivity作為活動的名稱。

進入谷歌開發者控制台 創建一個新項目。

我將其命名VideoTube。

在該項目中創建後出現的頁面上,展開API和驗證左側邊欄。

接下來,單擊的API。

在API的列表,點擊YouTube數據API並啟用YouTube數據APIV3後面的頁面上。

在左側邊欄,選擇證書。

對於資格證書,API支持的OAuth2.0,使用服務帳戶的API密鑰和。

我們將使用API密鑰選項。

選擇API密鑰從添加憑據下拉菜單。

會顯示一個彈出讓你指定密鑰類型。

選擇Android的關鍵。

接下來選擇添加包名和指紋,並添加Android應用程式的包名(我的是com.echessa.videotube),然後在終端中運行以下命令來獲取SHA-1證書指紋。

keytool-list-v-keystore~/.android/debug.keystore 輸入的android系統提示時作為密碼。

上位於調試密鑰庫上面的命令列印資料〜/.android/debug.keystore您的電腦上。

這是通過Eclipse中或Android工作室當你第一次建立了一個Android應用程式自動生成的。

在終端方面,你會看到MD5和SHA-1證書指紋。

複製SHA-1指紋,並將其粘貼在谷歌開發者控制台,然後點擊創建按鈕。

API密鑰將會產生。

稍後我們將使用此。

早在Android應用程式,創建一個名為類Config.java並粘貼以下。

packagecom.echessa.videotube; /** *Createdbyechessaon7/17/15. */ publicfinalclassConfig{ privateConfig(){ } publicstaticfinalStringYOUTUBE_API_KEY="YOURAPIKEY"; } 粘貼您的API密鑰。

下載(在寫作的時候1.2.1)的最新版本的Android版YouTube播放器API的。

解壓下載的文件,以找到庫的jar文件,並且你可以用它來看看有什麼的庫提供的一個示例應用程式。

該JAR文件位於庫文件夾中。

複製並粘貼到你的項目的庫文件夾中。

要訪問的庫文件夾,使用項目在AndroidStudio的工程資源管理器的角度來看。

然後,展開VideoTube->程式->庫。

變回Android的角度來看,選擇的build.gradle(模塊:應用程式)文件,並添加以下的依賴關係。

compilefiles('libs/YouTubeAndroidPlayerApi.jar') 同步項目的文件的gradle。

添加下麵的許可權,互聯網接入到的AndroidManifest.xml文件作為一個孩子明顯標簽和同級的應用程式。

編輯的strings.xml文件,如圖所示。

這些都是我們需要的字元串資源。

VideoTube Helloworld! Settings ErrorinitializingYouTubeplayer JumpTo Seconds 接下來,我們將添加一個YouTubePlayerView到佈局文件。

該視圖用於顯示YouTube視頻。

修改activity_main.xml中,如圖所示。

我們將直接使用YouTubePlayerView在我們的活動,而不是使用YouTubePlayerFragment。

正因為如此,該活動需要延長YouTubeBaseActivity類。

修改MainActivity.java如圖所示。

packagecom.echessa.videotube; importandroid.content.Intent; importandroid.os.Bundle; importandroid.view.Menu; importandroid.view.MenuItem; importandroid.widget.Toast; importcom.google.android.youtube.player.YouTubeBaseActivity; importcom.google.android.youtube.player.YouTubeInitializationResult; importcom.google.android.youtube.player.YouTubePlayer; importcom.google.android.youtube.player.YouTubePlayer.Provider; importcom.google.android.youtube.player.YouTubePlayerView; publicclassMainActivityextendsYouTubeBaseActivityimplementsYouTubePlayer.OnInitializedListener{ privatestaticfinalintRECOVERY_REQUEST=1; privateYouTubePlayerViewyouTubeView; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); youTubeView=(YouTubePlayerView)findViewById(R.id.youtube_view); youTubeView.initialize(Config.YOUTUBE_API_KEY,this); } @Override publicvoidonInitializationSuccess(Providerprovider,YouTubePlayerplayer,booleanwasRestored){ if(!wasRestored){ player.cueVideo("fhWaJi1Hsfo");//Playshttps://www.youtube.com/watch?v=fhWaJi1Hsfo } } @Override publicvoidonInitializationFailure(Providerprovider,YouTubeInitializationResulterrorReason){ if(errorReason.isUserRecoverableError()){ errorReason.getErrorDialog(this,RECOVERY_REQUEST).show(); }else{ Stringerror=String.format(getString(R.string.player_error),errorReason.toString()); Toast.makeText(this,error,Toast.LENGTH_LONG).show(); } } @Override protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ if(requestCode==RECOVERY_REQUEST){ //Retryinitializationifuserperformedarecoveryaction getYouTubePlayerProvider().initialize(Config.YOUTUBE_API_KEY,this); } } protectedProvidergetYouTubePlayerProvider(){ returnyouTubeView; } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R



請為這篇文章評分?