Представления, наложенные выше YouTubePlayerFragment или YouTubePlayerView в иерархии компоновки, приводят к тому, что воспроизведение приостанавливается немедленно
Я использую API проигрывателя YouTube для Android и хочу наложить вид поверх YouTubePlayerFragment
, чтобы отображать контекстную информацию и элементы управления над воспроизводимым видео.
К сожалению, кажется, что воспроизведение не работает должным образом ни в YouTubePlayerFragment
ни в YouTubePlayerView
когда есть один или несколько видов, размещенных над проигрывателем в иерархии макетов. Воспроизведение происходит менее чем за полсекунды, а затем немедленно останавливается.
Проблема может быть воспроизведена с помощью следующей схемы для демонстрации Simple PlayerFragment, поставляемой с SDK:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.Small"
android:layout_alignParentTop="true"
android:text="@string/playerfragment_text"/>
</RelativeLayout>
Я пробовал различные конфигурации макетов, используя и FrameLayout
и RelativeLayout
но проблема всегда FrameLayout
и та же. Я понимаю, что этот API был выпущен как "экспериментальный", но если это известная проблема, он является довольно серьезным препятствием для многих реализаций. У кого-нибудь есть хорошее решение или обходной путь?
Ответы
Ответ 1
Джефф - это работает так, как было разработано. Наложения поверх любого из наших игроков YouTube (включая плеер YouTube для Android) не поддерживаются. Когда обнаружено оверлей, воспроизведение останавливается, и журнал содержит информацию, полезную при отладке проблемы.
Мы поддерживаем оверлей Action Bar, посмотрим на эту демонстрацию, чтобы узнать больше: https://developers.google.com/youtube/android/player/sample-applications#Overlay_ActionBar_Demo.
Ответ 2
Youtube Player не позволяет просматривать его. Просто используя setVisibility (View.GONE) для всех видов наложения.
Ответ 3
Невозможно добавить кнопки в качестве надписей над игроком, как указано Google, иначе игрок остановится:
https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView
Обратите внимание, что во время воспроизведения видео этот вид имеет минимальный размер 200x110 дп. Если вы сделаете вид меньше, видео автоматически прекратить воспроизведение. Кроме того, не разрешается накладывать просмотр с другими видами во время воспроизведения видео.
Это представление не поддерживает дополнение. Чтобы добиться такого же эффекта, оберните представление в другой группе ViewGroup или присвоение ей полей.
Заполнение также не поддерживается на YouTubePlayer.
Чтобы наложить ваше мнение на видео, я рекомендую вам использовать ExoPlayer,
Это не часть sdk для Android, но она рекомендована google и включена в документацию разработчика Android:
http://google.github.io/ExoPlayer/
Также полезно отметить, что Exoplayer используется в приложении youtube.
Ответ 4
Вы можете установить тему плеера на YouTubePlayer.PlayerStyle.CHROMELESS, а затем реализовать свои собственные элементы управления ниже.
У меня возникла проблема, когда я не могу найти хороший ресурс о том, как повторно реализовать строку поиска с пользовательским макетом.
Ответ 5
Волла!! У меня есть один сценарий, когда эта проблема возникала в устройствах lollipop и выше, и это было из-за строки состояния. Я скрываю проблему с баром состояния. Просто написал это как ответ, если он помогает другим:)