2013-03-15 12 views
10

Jak mówi nagłówek: czy można wyłączyć pełny ekran za pomocą interfejsu API YouTube w systemie Android?Czy można wyłączyć pełny ekran dla apk youtube w systemie Android?

Mam aplikację z fragmentami, a wewnątrz tych fragmentów mam układ ramek, do których dodaję YouTubePlayerSupportFragment. Ale gdy klikam na pełnym ekranie, a następnie to jest wyjątek:

java.lang.RuntimeException: Nie można rozpocząć działalność ComponentInfo {com.example.xxx/com.example.xxx.MainActivity}: java.lang.IllegalArgumentException : Nie znaleziono id widok 0x7f040039 (com.example.xxx:id/frame_youtube) dla fragmentu YouTubePlayerSupportFragment {4282a068 # 11 id = 0x7f040039}

Odpowiedz

16

i w obliczu tego samego problemu i znaleźć sposób na to, że pracował dla obsługi mnie. W OnInitializedListener() dla fragmentu, mogę to zrobić:

@Override 
public void onInitializationSuccess(Provider arg0, 
final YouTubePlayer player, boolean arg2) { 
//Tell the player you want to control the fullscreen change 
player.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT); 
//Tell the player how to control the change 
player.setOnFullscreenListener(new OnFullscreenListener(){ 
@Override 
public void onFullscreen(boolean arg0) {      
// do full screen stuff here, or don't. I started a YouTubeStandalonePlayer 
// to go to full screen 
}}); 

}}); 

A ja wciąż mam błąd ponieważ użyłem YouTubeStandalonePlayer obsłużyć mój pełny ekran, więc rozwiązany, że dzwoniąc

finish(); 

w moim OnPause() dla działania. Pamiętaj tylko, że nie wrócisz do miejsca, w którym zostało przerwane, jeśli użytkownik kliknie przycisk Wstecz. Możesz też wysłać użytkownika do aplikacji YouTube w zamyśle, to nie wymagało testu finish() w urządzeniu OnPause, gdy go testowałem, ale nie odpowiadało moim potrzebom, a także samodzielnemu odtwarzaczowi.

Edit: Jeśli chcesz usunąć przycisk na pełnym ekranie, można też po prostu ustawić styl odtwarzacza takiego:

PlayerStyle style = PlayerStyle.MINIMAL; 
player.setPlayerStyle(style); 
29

Albo można po prostu wyłączyć go przez 1 linia:

player.setShowFullscreenButton(false); 
+0

Tego właśnie szukałem. Jeśli chcesz po prostu zablokować wideo w trybie pełnoekranowym, ale zachować wszystkie inne elementy sterujące, to jest to, czego chcesz. Wydaje się również mniej hacky. –

+0

Najlepsza odpowiedź. Dziękuję Ci. – John

+0

to jest to, czego szukałem – Yogamurthy