2012-12-23 8 views
16

Używam interfejsu API odtwarzacza YouTube na Androida i chcę nałożyć na nie widok YouTubePlayerFragment, aby wyświetlić informacje kontekstowe i elementy sterujące nad odtwarzanym filmem .Wyświetlenia nałożone powyżej funkcji YouTubePlayerFragment lub YouTubePlayerView w hierarchii układu powodują natychmiastowe wstrzymanie odtwarzania.

Niestety wydaje się, odtwarzanie nie działa poprawnie albo w YouTubePlayerFragment lub YouTubePlayerView ilekroć jest jedno lub więcej widoków ułożone nad odtwarzaczem w hierarchii układu. Odtwarzanie odbywa się krócej niż pół sekundy przed natychmiastowym wstrzymaniem.

Problem może być powielana stosując następujący układ Simple PlayerFragment demo dostarczana z 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> 

próbowałem różne konfiguracje układu z wykorzystaniem zarówno FrameLayout i RelativeLayout ale problem jest zawsze taka sama . Zdaję sobie sprawę, że ten interfejs API został wydany jako "eksperymentalny", ale jeśli jest to znany problem, jest on poważnym blokerem dla wielu implementacji. Czy ktoś ma dobre rozwiązanie lub obejście?

Odpowiedz

15

Jeff - działa zgodnie z projektem. Nakładki na naszych odtwarzaczach YouTube (w tym na odtwarzaczu YouTube na Androida) nie są obsługiwane. Po wykryciu nakładki odtwarzanie zatrzymuje się, a dziennik zawiera informacje pomocne w debugowaniu problemu. Obsługujemy nakładki paska czynności, zobacz to demo, aby dowiedzieć się więcej: https://developers.google.com/youtube/android/player/sample-applications#Overlay_ActionBar_Demo.

+0

Dzięki Jarek. Wydaje się, że jest to coś, o czym należy wspomnieć w bardziej widocznym miejscu w dokumentacji, i być może powinno być traktowane bardziej wyraźnie w czasie wykonywania. Mogę z powodzeniem wyświetlić fragment okna nad odtwarzaczem i ustawić przezroczystość tła, aby uzyskać pożądany efekt (przy odrobinie wysiłku), więc nie jestem pewien, co próbuje osiągnąć to ograniczenie projektu. –

+0

Jeff - nakładki są obecnie wbrew naszym ToS, stąd ograniczenie. Zgadzam się, że powinniśmy uczynić go bardziej widocznym i pracujemy nad wprowadzeniem aktualizacji, aby lepiej to uwzględnić. –

+0

@wjarek Czy mówienie jest w porządku, aby nakładać widoki po wstrzymaniu odtwarzacza YouTube? – eveliotc

4

Odtwarzacz Youtube nie pozwala na nakładanie widoku. Po prostu używając setVisibility (View.GONE) dla całego widoku nakładam go.

+2

tak, to działa dobrze. ale nie jest to dobry sposób na poprawne działanie YouTubePlayera. –

0

Możesz ustawić motyw odtwarzacza na YouTubePlayer.PlayerStyle.CHROMELESS, a następnie zaimplementować własne ustawienia poniżej.

Mam problem, w którym nie mogę znaleźć dobrego zasobu, aby ponownie wprowadzić pasek wyszukiwania z niestandardowym układem.

+0

Nawet przy PlayerStyle.CHROMELESS pojawia się ten sam błąd. – Borzh

3

Nie jest możliwe dodanie przycisków jako nakładki nad odtwarzaczem określone przez Google, w przeciwnym razie gracz zatrzyma:

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView

pamiętać, że filmy są gry, pogląd ten ma minimum rozmiar 200x1 dp. Jeśli zmniejszysz widok, filmy automatycznie przestaną być odtwarzane. Poza tym nie można nakładać widoku z innymi widokami podczas odtwarzania wideo.

Ten widok nie obsługuje dopełnienia. Aby uzyskać ten sam efekt, zawiń widok w innej grupie ViewGroup lub nadaj jej marginesy.

Wypełnienie nie jest również obsługiwane w odtwarzaczu YouTube.

Aby nałożyć swój pogląd na filmie, będę zalecamy używanie ExoPlayer, To nie jest częścią Android SDK, ale jest to zalecane przez google i zawarte w android dokumentacji programu:

http://google.github.io/ExoPlayer/

Warto również wspomnieć, że Exoplayer jest używany w aplikacji youtube.

+0

Witam, Czy można umieścić tekst w widoku odtwarzacza za pomocą ExoPlayera? – Rajesh

0

Volla !! Mam jeden scenariusz, w którym ten problem pojawiał się w urządzeniach Lollipop i nowszych, a to z powodu paska stanu. Ukrywam problem z paskiem stanu. Po prostu napisałem to jako odpowiedź na wypadek, gdyby pomógł innym :)

Powiązane problemy