Проблема с API YouTubePlayer для приложения во вложенном фрагменте - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь настроить список видео Youtube с помощью recyclerview в Fragment.У меня есть действие в этом упражнении. Здесь есть фрагмент, который управляет нижним выбором навигации. Другой фрагмент предназначен для табулирования, который управляет выбором вкладок, а последний - это адаптер, в котором у меня есть свой просмотрщик настроек, который настраивает список видео. Все работает, как я планировал, но когдаЯ играю видео это YoutubePlayerAPI пауза видео.Я попытался исправить это, выполнив поиск в Google, но не смог исправить.

ниже - мой video_recycler_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="4dp"
    android:background="@android:color/white"
    android:clipToPadding="false"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="4dp"
    android:padding="4dp"
    android:orientation="vertical">
    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/ivFeedCenter"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            fresco:placeholderImage="@color/colorPrimary"/>
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#4f000000"/>
        <ImageView
            android:id="@+id/play_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:src="@drawable/ic_video_play"/>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/video_container"
            android:tag="@string/video_component_tag">

        </FrameLayout>
    </RelativeLayout>
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="20sp"/>
    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

Может кто-нибудь сказать, что я делаю не так в этом?

Я получаю сообщение в logcat, о котором я упоминал ниже

W/YouTubeAndroidPlayerAPI: YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is not contained inside its ancestor android.support.v7.widget.RecyclerView{f61352e VFED..... ........ 0,0-1080,1560 #7f0a01df app:id/rvFeed}. The distances between the ancestor's edges and that of the YouTubePlayerView is: left: 24, top: 1402, right: 24, bottom: -422 (these should all be positive).

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

чтобы избежать паузы, вам нужно скрыть все представления, которые перекрывают вашу структуру кадра, потому что я вижу, что ваш кадр - match_parent.Когда вы нажмете на кнопку воспроизведения видео, спрячьте все и попробуйте.Также посмотрите, если у вас нет FloatingActionButton или другой вид наложения.

0 голосов
/ 18 сентября 2018

Я думаю, что при нажатии кнопки воспроизведения в это время высота framLayout равна 0 dp, а также youtubePlayer.init ("somevideID") попытается воспроизвести видео, но, поскольку высота равна 0 dp, просто вставьте видео и приостановите видео.

Вот что происходит:

**Insert video 
Play the Video 
Height is Zero at insertion time 
So it pauses the video instantly**

Сделайте одну вещь добавьте высоту как 200dp к frameLayout и сделайте его невидимым .Теперь до вызова youtubePlayer.init () делает frameLayout видимым , затем вызовите youtubePlayer.init ().Это решит вашу проблему.

...