在Android版YouTube播放器API使您可以將視頻播放功能到你的Android應用程式。該API允許您載入和播放YouTube視頻(和播放列表),並自定義和控制視頻播放體驗。 您可以載入或暗示的視頻嵌入到你的應用程式的用戶界面的球員視圖。然後,您可以通過編程式控制制播放。例如播放,暫停,或尋求在
在Android版YouTube播放器API使您可以將視頻播放功能到你的Android應用程式。該API允許您載入和播放YouTube視頻(和播放列表),並自定義和控制視頻播放體驗。
您可以載入或暗示的視頻嵌入到你的應用程式的用戶界面的球員視圖。然後,您可以通過編程式控制制播放。例如播放,暫停,或尋求在載入視頻的特定點。您可以註冊事件偵聽器來獲取某些事件,比如玩家載入視頻或播放狀態改變回調。API還具有輔助功能,支持方向的變化,以及過渡到全屏播放。
使用Android的Youtube API之前,您需要註冊您的應用程式,包括您的數字簽名的apk在谷歌開發者控制台文件的公證書。要註冊應用程式,請按照下列步驟。要開始,創建一個新的項目。我打電話給我VideoTube。在Android Studio的嚮導的下一個屏幕上選擇API 10,空白活動和MainActivity作為活動的名稱。
- 進入谷歌開發者控制台
- 創建一個新項目。我將其命名VideoTube。
- 在該項目中創建後出現的頁面上,展開API和驗證左側邊欄。接下來,單擊的API。在API的列表,點擊YouTube數據API並啟用YouTube數據API V3後面的頁面上。
- 在左側邊欄,選擇證書。對於資格證書,API支持的OAuth 2.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並粘貼以下。
package com.echessa.videotube;
/**
* Created by echessa on 7/17/15.
*/
public final class Config {
private Config() {
}
public static final String YOUTUBE_API_KEY = "YOUR API KEY";
}
粘貼您的API密鑰。
下載(在寫作的時候1.2.1)的最新版本的Android版YouTube播放器API的。解壓下載的文件,以找到庫的jar文件,並且你可以用它來 看看有什麼的庫提供的一個示例應用程式。該JAR文件位於庫文件夾中。複製並粘貼到你的項目的庫文件夾中。要訪問的庫文件夾,使用項目在Android Studio的工程資源管理器的角度來看。然後,展開VideoTube - >程式- >庫。
變回Android的角度來看,選擇的build.gradle(模塊:應用程式)文件,並添加以下的依賴關係。
compile files('libs/YouTubeAndroidPlayerApi.jar')
同步項目的文件的gradle。
添加下麵的許可權,互聯網接入到的AndroidManifest.xml文件作為一個孩子明顯
標簽和同級的應用程式
。
<uses-permission android:name="android.permission.INTERNET"/>
編輯的strings.xml文件,如圖所示。這些都是我們需要的字元串資源。
<resources>
<string name="app_name">VideoTube</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="player_error">Error initializing YouTube player</string>
<string name="seek_to">Jump To</string>
<string name="seek_to_hint">Seconds</string>
</resources>
接下來,我們將添加一個YouTubePlayerView
到佈局文件。該視圖用於顯示YouTube視頻。
修改activity_main.xml中,如圖所示。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
我們將直接使用YouTubePlayerView在我們的活動,而不是使用YouTubePlayerFragment。正因為如此,該活動需要延長YouTubeBaseActivity
類。
修改MainActivity.java如圖所示。
package com.echessa.videotube;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
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.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerView;
public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
private static final int RECOVERY_REQUEST = 1;
private YouTubePlayerView youTubeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(Config.YOUTUBE_API_KEY, this);
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.cueVideo("fhWaJi1Hsfo"); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo
}
}
@Override
public void onInitializationFailure(Provider provider, YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_REQUEST).show();
} else {
String error = String.format(getString(R.string.player_error), errorReason.toString());
Toast.makeText(this, error, Toast.LENGTH_LONG).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(Config.YOUTUBE_API_KEY, this);
}
}
protected Provider getYouTubePlayerProvider() {
return youTubeView;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R