Код android пример приложения просмотра с ютуб
В некоторых приложениях есть функция проигрывания видео не переходя в официальное приложение YouTube. Как это реализовать?Есть ли специальные библиотеки?Если реализация очень сложна, то как просто вставить видео из YouTube в приложение, даже , с условием , что оно будет проигрываться в официальном приложении?
Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа).Тут ты найдёшь пример использования такого окна ютуба.
Там же найдёшь ссылку на целый проект. Ссылка называется
download the completed project here .
Там создай виртуальный проект, перейди по кнопке
Enable APIs and get credentials like keys
YouTube Data API - Enable кажется, кнопка сверху. Нажми её, далее слева вкладка
Credentials , далее на синюю кнопку credentials , выйдет подменю, там android key
package name - имя твоего проекта, типа com.example.zaynulabid.myprojectname
. SHA-1 у меня такой
39:A2:AB:DF:C9:A4:24:BB:19:0F:73:40:FC:99:08:4E:36:6B:FC:6D , у тебя будет другой.
Как тебе его достать: В андроид студио внизу есть окошко терминала, напиши там команду для Mac OS X
keytool -list -v -keystore
keytool -list -v -keystore
/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
НО! это DEBUG CERTIFICATE Он для тестирования. Для выгрузки на маркет, он не подойдёт. Для выгрузки на маркет нужен, кажется, "RELEASE CERTIFICATE".
Если выйдет строка
Enter keystore password: , впиши android
Выйдет куча строк. Найди "SHA1:" и содержимое скопируй и вставь в поле при создании апи ключа.
Когда создашь этот апи ключ, засунь его в тот проект, в класс
Ещё, последнее. Надо скачать библиотеки ютуба. Отсюда
Распакуй архив в папку lib твоего проекта и в
в блок dependencies впиши строку
Чтоб расширить функционал, я поискал и добавил ещё парочку файлов. Тебе они по идее не должны понадобиться для этого проекта. Но если что, поищи в инете и скачай, тоже с офф сайта google
Если будете работать с каналом youtube, то нужен будет browser api , можно также создать в Credentials, где создавали youtube api ключ. При создании ключа, поля адреса для доступа пока оставить пустым(это ограничители для ключа).
В этом уроке будет рассмотрено, как создать свой собственный YouTube клиент, который будет иметь такие возможности, как поиск и воспроизведение видео с популярного ресурса YouTube. Вместе с этим, мы научимся использовать такие библиотеки, как YouTube Android Player API иthe YouTube Data API.
Перед началом работы над этим уроком нужно получить ключ разработчика, который даст возможность использовать YouTube API. Его можно получить здесь.
Создаем новый проект, выбираем минимальную версию для запуска приложения Android 2.2, создаем Blank Activity и жмем Финиш.
Прежде всего нужно добавить необходимые библиотеки. Нам понадобятся следующие:
- YouTube Android Player API - эта библиотека позволяет без особых трудностей добавлять и контролировать поведение видео в приложение. Ее можно загрузить отсюда;
- YouTube Data API - эта библиотека дает возможность запрашивать приложению информацию с YouTube. Использование этой библиотеки нужно для того, чтобы разрешить нашему приложению искать видео на YouTube. Дружно качаем эту библиотеку здесь;
- Picasso - уже хорошо известная читателям этого сайта библиотека (вот урок по ее использованию) которая необходима для удобной работы с изображениями с сети Интернет. Мы используем ее для того, чтобы создавать для "preview" картинки для видео. В ссылке на урок по Picasso есть адрес на его загрузку.
После загрузки необходимых файлов, распаковываем архивы библиотек и добавляем их в библиотеки приложения. Необходимо в папку libs приложения добавить следующие файлы:
Таким же образом добавляем и Picasso. Конечно можно добавить библиотеки и другим способом.
В приложении нам понадобится всего одно разрешение - на использование Интернет. Открываем файл AndroidManifest.xml и добавляем туда необходимое разрешение:
Приложение будет иметь 2 Activity, в одном будет происходить поиск видео, а в другом его воспроизведение. Для того, чтобы избежать возни с настройкой ориентации (альбомная/портретная) для приложения, мы сразу сделаем обе активности альбомными. Для этого в том же файле AndroidManifest.xml добавим:
Переходим к редактированию файла strings.xml. Нам нужно добавить сюда такие строки:
Теперь примемся за создание layout файла для активности с поиском видео. В нем будут использоваться такие элементы:
- EditText - сюда пользователи будут вводить название видео для поиска;
- ListView - список для отображения результатов поиска;
- LinearLayout - этот вид будет использоваться как родительский для двух вышеупомянутых.
Создаем новый файл layout/activity_search.xml и добавляем туда следующий код:
Теперь создадим layout файл, в котором будет отображаться информация об каком либо выбранном из списка найденных видео. Следовательно, нам нужно будет использовать следующие элементы:
- ImageView - для отображения картинки видео;
- TextView - для показа названия видео;
- TextView - для показа описания видео;
- RelativeLayout - используется как родительский элемент для вышеупомянутых.
Создаем файл с именем layout/video_item.xml и добавляем туда следующий код:
Далее создаем layout для активности в которой будет воспроизводиться видео. Он будет состоять из:
- YouTubePlayerView - для проигрывания видео с YouTube;
- LinearLayout - родитель для YouTubePlayerView.
Создаем файл по имени layout/activity_player.xml и добавляем в него следующий код:
Создаем новый java класс по имени VideoItem.java. Он будет использоваться для хранения такой информации о видео:
- YouTube ID;
- T itle ;
- D escription ;
- T humbnail URL.
Вся эта информация будет храниться в виде строковых ресурсов. После добавления необходимых настроек, класс VideoItem.java должен выглядеть следующим образом:
Необходимо создать еще один класс, который будет вспомогательным и позволит избежать работы над YouTube Data API прямо в нашем activity. Назовем его YoutubeConnector.java, он будет содержать следующее:
- YouTube класс, который будет использоваться для взаимодействия с YouTube API;
- YouTube.Search.List, необходимый для представления поискового запроса.
Вышеуказанные переменные мы инициализируем в конструкторе. Будет также инициализирован метод search, используемый для создания поискового запроса. Метод list используется для того, чтобы указать, какие детали результатов поиска мы хотим увидеть. Мы будем использовать id и snippet команды, которые помогут нам получить:
- id/Id;
- snippet/title;
- snippet/description;
- snippet/thumbnails/default/url.
Эти команды используются каждый раз, когда пользователь делает запрос.
На этом этапе работы, код класса YoutubeConnector.java должен выглядеть так:
Далее мы создаем метод по имени search, для выполнения поиска по введенному пользователем ключевому слову. Этот метод принимает ключевое слово, как параметр String. Query метод используется для настройки ключевых слов.
Далее мы запускаем запрос, используя метод execute. Результат поиска будет передан в форму SearchListResponse. Метод search должен выглядеть примерно так:
Теперь создаем класс SearchActivity.java. В этом классе будут поля, которые мы упоминали в activity_search.xml. Также будет использоваться Handler для обновления пользовательского интерфейса. В методе onCreate инициализируем необходимые элементы, добавляем OnEditorActionListener в EditText, для того чтобы определить, когда пользователь прекратил ввод поискового запроса (ключевого слова):
Обратите внимание на вызов метода searchOnYoutube. Определим этот метод. В этом методе мы создаем Thread для инициализации YoutubeConnector и запуска метода seach. Когда результаты поиска станут известны, Handler обновит пользовательский интерфейс. Код метода searchOnYoutube:
В методе updateVideosFound мы создаем ArrayAdapter и связываем его с ListView для отображения результатов поиска. В методу getView адаптера, мы наполняем video_item.xml и обновляем в нем информацию о результатах поиска.
Метод load библиотеки Picasso используется для настройки картинки видео (до того, как мы запускаем видео мы смотрим на его картинку, при нажатии на которую начинает проигрываться видео, вот это я и назвал картинка видео) и метод into для связи картинки с элементом ImageView:
Наконец, нам нужно добавить метод, настраивающий OnItemClickListener для ListView, который будет запускать видео при нажатии на него в списке из доступных видео после поиска по запросу. Назовем метод addClickListener и вызовем его в конце метода onCreate.
После того, как мы нажали на определенное видео, нужно организовать передачу его ID на PlayerActivity и запуск воспроизведения видео:
Под конец наших трудов осталось создать только это самое Activity для воспроизведения видео. Создаем новый класс PlayerActivity.java, который наследуется от YouTubeBaseActivity. Это важно, потому что только в подклассах YouTubeBaseActivity можно использовать YouTubePlayerView.
Это Activity имеет только одну переменную, которая представляет YouTubePlayerView, который мы упоминали при работе над activity_player.xml. Эта переменная инициализирована в методе onCreate. Наш новый класс также должен выполнять OnInitializedListener для того, чтобы знать, когда инициализация завершена. Интерфейс включает в себя два метода: onInitializationFailure и onInitializationSuccess.
Файл PlayerActivity.java должен выглядеть так:
Все, приложение готово для тестирования. После тяжелого пути создания этого приложения, надеюсь все почерпнули для себя что то полезное. Удачи!
Для воспроизведения видео ролика с YouTube в мобильном приложении я знаю два подхода.
1. Запустить через намерение (intent) родное приложение от Google.
Делается это примерно вот так:
В этом случае мы выйдем за пределы исходного приложения, зато работы сэкономим очень много.
2. Использовать YouTube Android Player API. В этом случае мы за пределы приложения не выйдем, и, по идее, больше нам ничего на устройстве и не надо.
В данной статье хочу поделиться опытом работы с этим API на примере простейшего приложения для проигрывания видео с YouTube.
Создадим новый Android проект в Eclipse и в мастере выберем Empty Activity.
Для работы с самим API вам нужно получить ключ разработчика. На каждое приложение нужно получить уникальный ключ. Детализированная инструкция находится здесь.
Если вкратце то, идете в консоль разработчика. Далее включаете YouTube Data API v3 и создаете новый проект, записываете свой ключ (SHA1) и имя пакета. В конце ваших действий получите вот такую табличку с ценной информацией:
Нам важен API KEY, его пропишем в приложение.
Теперь осталось скачать библиотеку и положить её в папку libs нашего проекта:
Теперь можно приступить непосредственно к программированию.
Вот код разметки activity_main.xml:
Вот код главного класса MainActivity:
Мы наследовали его от YouTubeBaseActivity , если нужны фрагменты, то для них есть YouTubePlayerFragment.
В константе VIDEO указано id видео с сайта.
В манифесте приложения нужно разрешить доступ к интернету:
Весь код проекта вы можете скачать здесь.
Резюмируя данную тему, могу сказать, что лучше труд экономить и пользоваться чужими приложениями.
YouTube позволяет встраивать функции воспроизведения видео в Android-приложения. API определяет методы загрузки и воспроизведения видео и плейлистов, а также настройки и управления процессом воспроизведения. С помощью API можно управлять воспроизведением программно. Например, искать нужную точку в загруженном видео.
Вы также можете зарегистрировать слушателей для получения колбеков определенных событий, таких как загрузка видеоплеера или изменение состояния проигрывателя. API также имеет необходимые функции поддержки ориентации экрана, а также перехода к полноэкранному воспроизведению и обратно.
Прежде чем перейти к коду, нужно выполнить настройку API YouTube в приложении.
1. Создаем проект с Empty Activity
2. Настройка библиотек YouTube и Manifest
Настроим клиентскую библиотеку YouTube API для нашего проекта. Перейдем на страницу YouTube Android Player API и загрузим jar-файл YouTube Android Player.
Извлекаем jar-файл и добавляем в папку libs .
Папка libs с добавленным jar-файлом
1. Переходим в консоль разработчика Google
Переходим в консоль разработчика. Включаем YouTube Data API.
2. Переходим в раздел “Help me choose”
3. Выбираем Credentials
В поле Name вводим имя пакета.
Создаём сертификат SHA-1 , запускаем команду signingReport .
Копируем сгенерированный сертификат и помещаем его, как показано ниже.
Ниже представлены XML-файл и YouTubeActivity.Kt , которые можно использовать в качестве базовых примеров для работы с YouTube API в приложении на Kotli
Теперь вы можете запустить код и посмотреть видео на эмуляторе.
Результат запуска в эмуляторе
Как известно, самые распространённые ролики - это видео с котиками. Поэтому, вам определённо нужно изучить эту тему.
Использование YouTube Android Player API позволяет вам использовать методы для загрузки и проигрывания видеороликов и плейлистов, а также управлять видео в нужном режиме.
Просмотр видео осуществляется в отдельном компоненте, который вы можете вставить в свою разметку. Вы можете программно управлять состоянием плеера: воспроизведение, пауза, поиск нужного места и т.п. Также можно использовать фрагменты.
Вдобавок возможен просмотр в полноэкранном режиме, поддерживается смена ориентации и другие возможности.
Запускаем приложение YouTube через намерение
Прежде чем мы начнём использовать YouTube API, рассмотрим сначала пример запуска приложения YouTube на устройстве через намерение. Так как на эмуляторе этого приложения нет, то проверять на реальном устройстве.
Существуют для намерения для запуска конкретного видеоролика или плейлиста, которые можно создать при помощи методов класса com.google.android.youtube.player.YouTubeIntents:
- createPlayVideoIntent (Context context, String videoId) - создаёт намерение для запуска видео по заданному идентификатору
- createOpenPlaylistIntent (Context context, String playlistId) - создаёт намерение, открывающее плейлист в приложении YouTube
Добавим на экран кнопку для запуска намерения:
YouTube API
Теперь перейдём к примерам с использованием YouTube API. Для начала нужно скачать библиотеку YouTubeAndroidPlayerApi-1.2.2.zip. Архив с библиотекой содержит также готовый пример для демонстрации возможностей YouTube Android Player API. На данный момент у библиотеки версия 1.2.2.
Далее необходимо зарегистрироваться в Google APIs console, чтобы получить специальный ключ, который будет использоваться в вашем приложении. Если вы использовали в проектах новую версию Карт Google, то данная операция будет вам знакома.
Сначала создаётся новый проект через кнопку Create project:
Если вы уже создавали ранее проект, то выбираете ссылку Create. :
У вас откроется панель доступных сервисов. Найдите сервис YouTube Data API v3 и переключите его в состояние ON. (Перед этим вам предложат почитать лицензионное соглашение).
Щёлкните ссылку API Access в навигационном меню:
В консоли будет отображён ваш ключ разработчика по умолчанию для использования в браузерах.
Щёлкните кнопку Create new Android key.
В текстовом поле нужно ввести отпечаток сертификата SHA-1, используемый вашим Android-приложением.
Стоит отметить, что если вы не введёте никакой информации в это поле, то созданный ключ подойдёт для приложения и вы вполне можете использовать его в тестовых примерах. Позже вы всегда можете вернуться в консоль и получить настоящий ключ для конкретного приложения, который вы будете распространять в Google Play.
Итак, консоль покажет вам ваш ключ Android API:
Распакуйте архив YouTubeAndroidPlayerApi-1.0.0.zip, который вы скачали ранее.
Создайте новый проект для примера, который входит в состав архива. Для этого выберите в меню File | New | Project.
Выберите в Select a wizard Android | Android Project from Existing Code.
Импортируйте проект, выбрав нужную папку, в которую вы распаковали пример.
После успешного импорта в Eclipse у вас будет готовый пример для изучения. Вам необходимо добавить в проект библиотеку YouTubeAndroidPlayerApi.jar в вашу папку <project_root>/libs.
Откройте файл DeveloperKey.java в пакете YouTubeAndroidAPIDemo (YouTubeAndroidAPIDemo/src/com/examples/youtubeapidemo/DeveloperKey.java) и замените null вашим ключом разработчика, который вы получили ранее в консоли:
Если вы этого не сделаете, то программа завершится с ошибкой java.lang.NullPointerException.
Запускайте приложение на устройстве (на эмуляторе работать не будет).
Создание своего примера
Учебная программа - это, конечно, замечательно. Но хочется научиться создавать свои приложения. Давайте попробуем с нуля. Запускаем Eclipse и создаём новый проект YoutubeDemo.
Скопируйте файл YouTubeAndroidPlayerApi.jar в папку libs вашего проекта.
В Eclipse делаем правый щелчок на файле YouTubeAndroidPlayerApi.jar и выбираем Build Path | Add to build path.
Добавляем компонент YouTube Video Player View в разметку активности.
Переходим к классу активности. Прежде всего нужно запомнить, что вместо стандартного extends Activity нужно наследоваться от YouTubeBaseActivity.
Также нужно импортировать следующие классы:
Общие комментарии к коду:
- Реализуйте интерфейс YouTubePlayer.OnInitializedListener.
- Вызовите метод инициализации с использованием ключа API.
- Загрузите видео при помощи метода YouTubePlayer.loadVideo(video id).
Не забываем про разрешение на интернет в манифесте.
Идентификатором видео на YouTube является набор символов после v=:
Встретилась проблема, которую я так и не смог решить. Первоначально у меня использовался RelativeLayout, который стоит по умолчанию при создании нового проекта. Почему-то при такой разметке видео отказывалось проигрываться. Оно начинает загружаться, выводит превьюшку, проигрывает одну-две секунды и останавливается. Если переключиться в полноэкранный режим, то видео воспроизводится без проблем. Надо почитать документацию, может там найдётся объяснение. Если вы разберётесь, то дайте знать, пожалуйста.
Удачного просмотра видео про котиков!
Альтернативные варианты
Использовать официальный YouTube API не слишком удобно - получать ключ, разбираться в документации. Можно попробовать другие варианты. Например, есть сторонняя библиотека.
Ключ не требуется, но некоторые жалуются, что Гугл удаляла приложение за использование этой библиотеки.
Читайте также: