Для воспроизведения видео ролика с YouTube в мобильном приложении я знаю два подхода:
1. Запустить через намерение (intent) родное приложение от Google.
Делается это примерно вот так:
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));
В этом случае мы выйдем за пределы исходного приложения, но при этом работы сэкономим очень много.
2. Использовать YouTube Android Player API. В этом случае мы за пределы приложения не выйдем, и, по идее, больше нам ничего на устройстве и не надо.
В данной статье хочу поделиться опытом работы с этим API на примере простейшего приложения для проигрывания видео с YouTube.
Создадим новый Android-проект в Eclipse, и в мастере выберем Empty Activity.
Для работы с самим API вам нужно получить ключ разработчика. На каждое приложение нужно получить уникальный ключ. Детализированная инструкция находится здесь.
Если вкратце, то идете в консоль разработчика. Далее включаете YouTube Data API v3 и создаете новый проект, записываете свой ключ (SHA1) и имя пакета. В конце ваших действий получите вот такую табличку с ценной информацией:
Нам важен API KEY, его пропишем в приложение.
Теперь осталось скачать библиотеку и положить её в папку libs нашего проекта:
Теперь можно приступить непосредственно к программированию.
Вот код разметки 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="${relativePackage}.${activityClass}" >
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dip" />
</RelativeLayout>
Вот код главного класса MainActivity:
package com.rusdelphi.youtubeplayer;
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 {
static private final String DEVELOPER_KEY = "Ваш код API KEY";
static private final String VIDEO = "LCn0edNbA7Q";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(DEVELOPER_KEY, this);
}
@Override
public void onInitializationFailure(Provider provider,
YouTubeInitializationResult error) {
Toast.makeText(this, "Ѕлин!" + error.toString(), Toast.LENGTH_LONG)
.show();
}
@Override
public void onInitializationSuccess(Provider provider,
YouTubePlayer player, boolean wasRestored) {
player.loadVideo(VIDEO);
}
}
Мы наследовали его от YouTubeBaseActivity. Если нужны фрагменты, то для них есть YouTubePlayerFragment.
В константе VIDEO указано id видео с сайта.
При создании мы создали слушателя YouTubePlayer.OnInitializedListener. Если инициализация плеера завершилась ошибкой, то мы увидим сообщение «Блин!….». На устройстве версии 2.2 он ругался на старую версию сервисов Google.
В манифесте приложения нужно разрешить доступ к интернету:
<uses-permission android:name="android.permission.INTERNET" />
Весь код проекта вы можете скачать здесь.
Резюмируя данную тему, могу сказать, что лучше труд экономить и пользоваться чужими приложениями.
Но если нельзя, то пользуйтесь данным опытом.
Подскажите пожалуйста! Как сделать не одно видео, а несколько и желательно в recyclerview? Ну хотя бы ссылку – где это найти?