Search
Write a publication
Pull to refresh

Как подключить YouTube Data API к Android приложению

Original author: https://nicolemichelledsouza.medium.com/

Оригинальная статья

В этой статье я покажу вам, как подключить YouTube API к вашему Android приложению. Приступим!

Функциональность:

YouTube API даёт возможность пользователям

  • Получить список видео, пользователей и плейлистов.

  • Это также обеспечивает возможность управлять этими списками(лентами). Например создание новых плейлистов, добавление видео в избранное, и отправка сообщений.

  • API также позволяет загружать видео.

  • Система также позволяет зарегистрировать слушателей для получения колбэков определенных событий, таких как загрузка видео или изменение состояния проигрывателя.

  • Есть поддержка изменения ориентации экрана, а также перехода к просмотру в полноэкранном режиме.

Руководство:

Требования: Google аккаунт

Шаг 1: Начнём с открытия Android Studio и создания нового проекта, выберите Empty Activity

Шаг 2: Перед использованием YouTube API вы должны зарегистрировать ваше приложение. Для этого вы должны сделать следующее:

  • Перейдите в Google Developers Console

  • Создайте новый проект (мой я назвал SelfLab)

  • Выберите API Overview

  • Выберите учётные данные в APIs & Services

  • Выберите создание учётных данных, затем API ключ, скопируйте его, позже он нам понадобиться

  • Выберите Library и найдите YouTube Data API

  • Нажмите включить API

  • Теперь мы получили наш ключ и API, давайте приступим к работе в Android приложении

  • Создайте Java Class File под названием Config.java в котором мы настроем наш API, вставьте следующий код в файл.

public final class Config {
  private Config() {}
  public static final String YOUTUBE_API_KEY = “Your API Key Here”;
}
  • В Gradle добавьте следующий код в зависимости

compile files(‘libs/YouTubeAndroidPlayerApi.jar’)
  • В AndroidManifest.xml добавьте разрешение на интернет

<uses-permission android:name="android.permission.INTERNET"/>
  • Объявите следующие строки в String.xml

<resources>
 <string name=”app_name”>VideoTube</string>
 <string name=”player_error”>Error initializing YouTube player: %s</string>
 <string name=”seek_to”>Jump To</string>
 <string name=”seek_to_hint”>Seconds</string>
</resources>
  • Теперь мы готовы к созданию YouTube Player View в 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>
  • Теперь мы создадим класс, который является подклассом YouTubeBaseActivity. Это нужно, чтобы использовать YouTubePlayerView. Мы подключаем слушатель YouTubePlayer.OnInitializedListeber чтобы получать сообщения об успешной или нет инициализации. У интерфейса есть два метода, которые называются onInitializationFailure() и onInitializationSucess(). Если инициализация прошла успешно, то метод cueVideo() запустит YouTube видео и в случае ошибки проверяет, может ли пользователь её исправить.

  • Если это невозможно, пользователю показывается Toast об ошибке и если пользователь может её исправить, то метод getErrorDialog() показывает диалоговое окно, которое помогает исправить ошибку.

import android.content.Intent;
import android.os.Bundle;
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;
  }
}

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.