Как стать автором
Обновить

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

Автор оригинала: 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;
  }
}

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.