+4

Tạo API key cho app Android Youtube Player

Để tạo một ứng dụng Android liên quan đến Youtube Player, bạn cần phải đăng kí API key cho ứng dụng đó.

1. Tạo project Android mới
2. Thêm thư viện YouTubeAndroidPlayerApi cho project vừa tạo
+ Link download: https://developers.google.com/youtube/android/player/downloads/ + Giải nén file download, coppy file .jar vào thư mục libs của project + Add thư viện
3. Đăng kí API key cho ứng dụng
Truy cập địa chỉ https://console.developers.google.com/project bằng tài khoản Google, nhấn nút Create Project nhập vào Project name -> create. hh.PNG
+ Tìm tới API Manager->Youtube Data API

kk.PNG
+ Chọn Enable

j.PNG
+ Vào mục Credentials->Create credentials->API key->Restrict key

i.PNG
+ Tại đây bạn chọn add package name and fingerprint

u.PNG
+ Điền tên package của project bạn tạo ở bước 1.
+ Để lấy SHA-1 certificate fingerprint bạn làm như sau:
+ Trên Windows: gõ lệnh sau trực tiếp trong terminal của Android Studio: keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
+ Hoặc mở command line (cmd) bằng quyền admin và đi vào thư mục jdk như hình
yy.jpg
+ Trên Linux, Mac OS gõ lệnh sau: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
+ Copy lại dòng SHA1
y.png
+ Quay lại web, paste SHA-1 và nhấn save. Như vậy là bạn đã đăng kí thành công API key cho ứng dụng của mình. Ok.Cùng test thử một chức năng đơn giản, chạy video youtube trên ứng dụng vừa tạo.
+ Tạo một activity mới. Sửa file layout như sau:

<?xml version="1.0" encoding="utf-8"?>
       <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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".TruitonYouTubeAPIActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <com.google.android.youtube.player.YouTubePlayerView
        android:id="@+id/youtube_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" /></RelativeLayout>

File java:


public class ActivityPlayYouTube extends YouTubeBaseActivity implements
          YouTubePlayer.OnInitializedListener {

     private YouTubePlayer YPlayer;
     private static final String YoutubeDeveloperKey = "YOUR_DEVELOPER_KEY_GOES_HERE";
     private static final int RECOVERY_DIALOG_REQUEST = 1;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_playyoutube);

          YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
          youTubeView.initialize(YoutubeDeveloperKey, this);
     }

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          //getMenuInflater().inflate(R.menu.you_tube_api, menu);
          return true;
     }

     @Override
     public void onInitializationFailure(YouTubePlayer.Provider provider,
              YouTubeInitializationResult errorReason) {
          if (errorReason.isUserRecoverableError()) {
              errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
          } else {
              String errorMessage = String.format(
                        "There was an error initializing the YouTubePlayer",
                        errorReason.toString());
              Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
          }
     }

     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (requestCode == RECOVERY_DIALOG_REQUEST) {
              // Retry initialization if user performed a recovery action
              getYouTubePlayerProvider().initialize(YoutubeDeveloperKey, this);
          }
     }

     protected YouTubePlayer.Provider getYouTubePlayerProvider() {
          return (YouTubePlayerView) findViewById(R.id.youtube_view);
     }

     @Override
     public void onInitializationSuccess(Provider provider,
              YouTubePlayer player, boolean wasRestored) {
          if (!wasRestored) {
              YPlayer = player;
              /*
               * Now that this variable YPlayer is global you can access it
               * throughout the activity, and perform all the player actions like
               * play, pause and seeking to a position by code.
               */
              YPlayer.cueVideo("2zNSgSzhBfM");
          }
     }
}
  • Tiếp theo thêm quyền Internet vào file AndroidManifest.xml
    <uses-permission android:name="android.permission.INTERNET"/>
  • Sửa lại biến YoutubeDeveloperKey chính là key phát sinh từ trang web.
  • Hàm cuối cùng .cueVideo đối số truyền vô chính là mã của 1 video youtube, các video youtube đều có dạng https://www.youtube.com/watch?v=i-VutjptWwQ, phần i-VutjptWwQ là mã bạn cần điền.
  • Chạy và xem kết quả!

All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.