Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android YouTubePlayer with unauthorized overlay on top of player

I'm using YouTubePlayer (YouTube api for android) within a Fragment I am inflating a LinearLayout with the YouTube Player, in this way:

fragmentManager = getActivity().getSupportFragmentManager();
                    fragmentTransaction = fragmentManager.beginTransaction();

                    player = new YouTubePlayerSupportFragment();
                    fragmentTransaction.add(R.id.youTubePlayerContainer, player); 
                    fragmentTransaction.commit();

...Where youTubePlayerContainer is the inflated LinearLayout

The player is detected correctly, start playing and in a second stops. The Log shows the following:

YouTube video playback stopped due to unauthorized overlay on top of player. 
The YouTubePlayerView is obscured by android.widget.FrameLayout@4110d1f8. 
YouTubePlayerView is completely covered, with the distance in px between each edge of the obscuring view and the YouTubePlayerView being: left: 484, top: 100, right: 100, bottom: 170..

This is my XML: (No FrameLayout within it)

 <LinearLayout
        android:id="@+id/curtain"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/withApi"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/youTubePlayerContainer"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_margin="30dp"
                android:layout_weight="1"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:background="@color/trans_popUp"
                android:padding="3dp" >

                <TextView
                    android:id="@+id/textYouTubeVisor"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Title..."
                    android:textColor="@color/white" />
            </LinearLayout>
        </LinearLayout>

I tried changing the margins without success. I read the official documentation but without success Indicates that the FrameLayout that causes the problem is: android.widget.FrameLayout @ 4110d1f8 But with such a reference does not identify which refers

to someone he did this happen?

I appreciate any help.

Regards

like image 562
Sergio76 Avatar asked Apr 17 '13 18:04

Sergio76


3 Answers

I faced the same problem today, and for me the error in the logs was:

W/YouTubeAndroidPlayerAPI﹕ YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is not contained inside its ancestor com.google.android.youtube.player.YouTubePlayerView{42686bc8 V.E..... ........ 0,0-1200,675 #7f0a00a0 app:id/video_player}. The distances between the ancestor's edges and that of the YouTubePlayerView is: left: -10, top: -10, right: -10, bottom: -10 (these should all be positive).

I fixed this by removing the padding in the YouTubePlayerView in the layout. So my layout looks like this:

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/video_player"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000" />
like image 192
Bonton255 Avatar answered Oct 15 '22 00:10

Bonton255


I had the same error. Although I did the XML changes, I continued to receive the error:

 YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is obscured by android.view.View{59fa6ce V.ED..... ........ 0,0-1440,84 #102002f android:id/statusBarBackground}. The view is inside the YouTubePlayerView, with the distance in px between each edge of the obscuring view and the YouTubePlayerView being: left: 0, top: 0, right: 0, bottom: 2308..

After I set the FULLSCREEN, it worked perfect

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

Hope it will help others.

like image 41
Igor Fridman Avatar answered Oct 15 '22 01:10

Igor Fridman


The problem is only with layout, the YouTube Player doesn't permit any view staying over it, neither invisible nor transparent.

In order to make this visible in your device, enable layout bounds in developer option.(warning with paddings and margins)

Try to comment out others views' code on your layout and test this again please.

like image 35
lucasddaniel Avatar answered Oct 15 '22 01:10

lucasddaniel