Как воспроизвести видео YouTube в приложении для Android, если у пользователя не установлено приложение YouTube?

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


person ButterBeast    schedule 21.01.2014    source источник


Ответы (1)


Используйте класс YouTubeIntents в Android Player API, чтобы изящно деградировать. Вот пример кода для определения того, что может сделать пользователь:

if(YouTubeIntents.isYouTubeInstalled(context)) {
   if(YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(context) == YouTubeInitializationResult.SUCCESS) {
   // start the YouTube player
   context.startActivity(
   YouTubeStandalonePlayer.createVideoIntent((Activity) context, "developer_key", videoId));
 } else if(YouTubeIntents.canResolvePlayVideoIntent(context)) {
   // Start an intent to the YouTube app
   context.startActivity(
   YouTubeIntents.createPlayVideoIntent(context, videoId));
 }
}
// Falls through: last resort - render a webview with an iframe

Мы рассмотрим этот код в нашем выступлении Google I/O в 2013 году, если вам интересно. Начните примерно с 6:17.

person Ikai Lan    schedule 21.01.2014
comment
Открытие видео в приложении YouTube не вариант, потому что мы делаем библиотеку, которую будет включать другой разработчик. И они не захотят покидать свое приложение. - person ButterBeast; 21.01.2014
comment
В этом случае просто удалите else if и перейдите на WebView с помощью проигрывателя iframe. - person Ikai Lan; 22.01.2014
comment
Я пробую это, но оно не воспроизводит видео на моем старом тестовом телефоне (Android 2.3.5, Samsung Galaxy S). Он просто вращается, и через 10 секунд появляются похожие видео. Должна ли она работать на каждом телефоне 2.3+? - person ButterBeast; 22.01.2014
comment
К сожалению, практически нет никаких гарантий с проигрывателем iframe в веб-просмотре. Однако - процент старых телефонов значительно снизился. Причина, по которой вы должны позаботиться об этом и протестировать этот вариант использования, связана с устройствами Kindle Fire, которые, по нашему мнению, могут оказать значительно большее влияние на рынок. Устройства Kindle Fire в настоящее время не поддерживают то, что необходимо для воспроизведения в приложении. - person Ikai Lan; 22.01.2014
comment
Да, в конце концов, похоже, мы выберем этот вариант. Это не идеально, но это работает. Спасибо за ответ. - person ButterBeast; 22.01.2014
comment
Это сработало для меня! Что касается варианта возврата, я следую обычному подходу к отображению ссылки на видео в браузере. Намерение videoIntent = новое намерение(Intent.ACTION_VIEW, Uri.parse(youtube.com/watch?v= + идентификатор видео)); startActivity(видеоинтент); - person Wahib Ul Haq; 09.06.2016