2013-04-17 8 views
11

sto usando YouTubePlayer (YouTube API per Android) all'interno di un frammento sto gonfiando un LinearLayout con il lettore di YouTube, in questo modo:Android YouTubePlayer con sovrapposizione non autorizzata sulla parte superiore del lettore

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

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

.. .Dove youTubePlayerContainer è la LinearLayout gonfiata

Il lettore viene rilevato correttamente, inizia a suonare e in una seconda fermata. Il registro mostra la seguente:

YouTube video playback stopped due to unauthorized overlay on top of player. 
The YouTubePlayerView is obscured by [email protected] 
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.. 

Questo è il mio XML: (No FrameLayout all'interno di esso)

<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> 

Ho provato a cambiare i margini senza successo. Ho letto la documentazione ufficiale, ma senza successo Indica che il FrameLayout che causa il problema è: android.widget.FrameLayout @ 4110d1f8 Ma con un tale riferimento non identifica che si riferisce

a qualcuno che è successo?

Apprezzo qualsiasi aiuto.

saluti

+2

Il lettore è progettato in modo che non sia possibile inserire nulla sul contenuto o sui controlli. Dato che non includi il player nel tuo layout, posso solo presumere che il layout stia emergendo sul video, non sotto di esso. Riesci a vedere il tuo titolo ... durring play? –

+1

Hai risolto il problema? Plz fammi sapere, sono bloccato qui :( – Reyjohn

+0

@Reyjhon Non ho risolto questo problema.Se trovo una soluzione, ti spiegherò.se se ne trovi una, mi farebbe piacere che tu me lo dica. Saluti – Sergio76

risposta

1

Il codice demo per l'API Android utilizza questo layout per il frammento demo, forse che può avere idee in corso. Vedere questa pagina: https://developers.google.com/youtube/android/player/

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:textAppearance="@android:style/TextAppearance.Small" 
     android:gravity="center" 
     android:text="@string/playerfragment_text"/> 

    <fragment 
     android:name="com.google.android.youtube.player.YouTubePlayerFragment" 
     android:id="@+id/youtube_fragment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 
4

Il problema è solo con il layout, il YouTube Player non consente alcuna vista stare su di esso, né invisibile né trasparenti.

Al fine di rendere questo visibile nel dispositivo, abilitare limiti di layout opzione sviluppatore. (Avvertimento con paddings e margins)

Provare per commentare il codice altrui vista sul layout e testare di nuovo per favore.

2

YouTube Player rileva alcune visualizzazioni. Basta rimuovere quelle view o setVisible (View.GONE) per loro. Si prega di controllare questo link per ulteriori informazioni Solution

13

Sei riuscito a risolvere questo problema?

Ho affrontato lo stesso problema di oggi, e per me l'errore nei registri di stato:

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). 

Ho fissato questo rimuovendo l'imbottitura in YouTubePlayerView nel layout. Quindi il mio layout è il seguente:

<com.google.android.youtube.player.YouTubePlayerView 
    android:id="@+id/video_player" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#000" /> 
+0

Questo ha risolto il mio problema , grazie mille per averlo condiviso! –

+0

Questa era l'unica cosa necessaria ... grazie :) –

+0

Aiutami pure. Informazioni aggiuntive: l'errore si è verificato anche durante lo scorrimento della pagina, in cui si trova YouTubePlayerView. Quando YouTubePlayerView diventa invisibile (in un caso a causa dello scorrimento sull'attività), il video si è interrotto con questo errore – user2924714

1

È necessario rimuovere qualsiasi attributo di riempimento nella vista Video.

Sbagliato:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <com.google.android.youtube.player.YouTubePlayerView 
    android:id="@+id/youtube_player" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    **android:padding="10dp"** /> 

    </LinearLayout> 

destra:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <com.google.android.youtube.player.YouTubePlayerView 
    android:id="@+id/youtube_player" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 

    </LinearLayout> 
1

Ho avuto lo stesso errore. Anche se ho fatto i cambiamenti XML, ho continuato a ricevere l'errore:

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.. 

Dopo aver impostato il FULLSCREEN, tutto ha funzionato perfettamente

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

auguro che possa aiutare gli altri.

+0

Sì, è stato utile! :): D –