Воспроизведение youtube видео в приложении для Android

В моем приложении для Android я хотел бы, чтобы пользователь один раз нажал изображение, автоматически воспроизводил видеоролик YouTube и, когда видео было сделано, пользователь немедленно возвращается в приложение. Каков наилучший способ сделать это в Android?

Я пытался использовать намерения. Это работает в том, что видео появляется на том, что я думаю, это веб-страница youtube. Однако для воспроизведения видео требуется другой сигнал. Я бы хотел избежать этого, если это возможно.

Я попробовал весь MediaPlayer, prepareAsync, setOnPreparedListener и не получил его на работу. По какой-то причине PrePared никогда не назывался. Никаких исключений не было. Я использую эмулятор для тестирования, и я новичок в Android, поэтому я не уверен, будет ли поведение отличаться на физических устройствах.

Я получил это хорошо работает на iOS, создавая творческий подход к веб-просмотру. Я надеюсь, что это будет более просто на Android. Документы уверены, что они звучат прямо.

Ура!

Обновление: все ниже все верно, но официальный API YouTube для Android теперь доступен.

Безусловно, самый простой способ воспроизведения видео на YouTube – просто запустить Intent для запуска собственного приложения для Android на YouTube. Конечно, это не удастся, если вы не находитесь на сертифицированном устройстве Google, у которого нет дополнения к приложениям Google. (The Kindle Fire, вероятно, самый большой пример такого устройства). Проблема с этим подходом заключается в том, что пользователь не будет автоматически завершать работу в вашем приложении, когда видео заканчивается; Они должны нажать кнопку «Назад», и в этот момент вы, вероятно, потеряли их.

В качестве второго варианта вы можете использовать MediaPlayer API для воспроизведения видео на YouTube. Но с этим подходом есть три оговорки:

1) Вам необходимо обратиться к API веб-сервиса YouTube GData, передав ему идентификатор видео. Вы получите массу метаданных, а также URL-адрес RTSP, который вы должны передать MediaPlayer для воспроизведения потока с кодировкой H.264. Вероятно, это причина, по которой ваша попытка использовать MediaPlayer не удалась; Вы, вероятно, не использовали правильный URL для потока.

2) Подход GData / MediaPlayer будет воспроизводить только контент с низким разрешением (176×144 или аналогичный). Это преднамеренное решение со стороны YouTube, чтобы предотвратить кражу контента. Конечно, это не дает очень удовлетворительного опыта. Для получения потоков с более высоким разрешением есть back-door hacks, но они не поддерживаются во всех версиях Android, и использование их является нарушением условий обслуживания YouTube.

3) Потоки RTSP могут блокироваться некоторыми внутренними сетями / брандмауэрами, поэтому такой подход может не работать для всех пользователей.

Третий вариант – встроить WebView в ваше приложение. Здесь есть два подхода:

1) Вы можете встроить Flash-объект и запустить стандартный настольный Flash-плеер для YouTube. Вы даже можете использовать Javascript API для управления проигрывателем и ретрансляции событий обратно в собственное приложение для Android. Этот подход работает хорошо, но, к сожалению, Flash устарел на платформе Android и не будет работать для Android 4.1 и более поздних версий.

2) Вы можете вставить <video> для воспроизведения YouTube через HTML5. Поддержка этого варьируется между различными версиями Android. Он хорошо работает на Android 4.0 и более поздних версиях; Более ранние версии имеют несколько пятнистую поддержку HTML5 <video> . Таким образом, в зависимости от того, какие версии Android должны поддерживать ваше приложение, вы можете использовать гибридный подход встраивания HTML5 на Android 4.x или более поздней версии и Flash для всех ранних версий Android.

На StackOverflow существует несколько потоков об использовании HTML5 для воспроизведения видео на YouTube; Ни один из них не описывает весь процесс, за которым вы должны следовать в одном месте. Вот ссылки на некоторые из них:

Android – Как воспроизвести видео Youtube в WebView?

Как вставить клип YouTube в WebView на Android

Play Youtube HTML5 встроенное видео в Android WebView

Все это будет значительно легче в ближайшие недели / месяцы; В Google I / O 2012 они представили / продемонстрировали новый API YouTube для Android, который будет поддерживать прямое встраивание контента YouTube в ваше приложение с полной поддержкой Android 2.2 (около 95% пользовательской базы Android на момент написания этой статьи). Он не может прибыть достаточно быстро.