2015-10-06 3 views
6

У меня проблема с YouTube (всегда загружается).Youtube YouTubePlayerSupportFragment не работает правильно (загрузка всегда?)

Очевидно, что работает правильно «но только в первый раз», я хочу сказать, что первый экземпляр (первый запуск) работает правильно и правильно загружается горизонтально и вертикально, но когда фрагмент изменения ->fragmentManager.beginTransaction() в моей MainActivity (у меня есть функция на всех фрагменты вызывает этот метод beginTransaction), и после того, как я иду -> BeginTransaction YouTube -> видео-ролика всегда нагрузка:

Пример:

Шаг 1

Первый раз -> MainActivity -> beginTransacti на YouTube -> нажмите - -> Load правильно

Шаг 2

Второй раз -> MainActivity -> BeginTransaction YouTube -> нажмите - -> Load всегда

Закрыть App (Меню) и повторите шаги 1 и 2.

Это мой код:

public void youtube(){ 

     youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); 

     youTubePlayerFragment.initialize(API_KEY, new YouTubePlayer.OnInitializedListener() { 
      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) { 
       if (!wasRestored) { 
        youTubePlayer.cueVideo(VIDEO_ID); 
        youTubePlayers=youTubePlayer; 
       } 
       // Toast.makeText(getActivity(), "1", Toast.LENGTH_SHORT).show(); 
       youTubePlayer.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() { 
        @Override 
        public void onFullscreen(boolean b) { 
         if(b){ 
          //Toast.makeText(getActivity(), "1", Toast.LENGTH_SHORT).show(); 
          MainActivity.isYoutubeReadyHoritzontal=true; 
          knowIfPortraitAndBackManyally=0; 
         }else { 
          //Toast.makeText(getActivity(), "2", Toast.LENGTH_SHORT).show(); 
          getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
          knowIfPortraitAndBackManyally=1; 
          MainActivity.countIFexit=0; 
          //MainActivity.isYoutubeReadyHoritzontal=false; 
         } 
        } 
       }); 
      } 

      @Override 
      public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) { 
       if (errorReason.isUserRecoverableError()) { 
        errorReason.getErrorDialog(getActivity(), RECOVERY_DIALOG_REQUEST).show(); 
       } else { 
        String errorMessage = String.format("YouTube Error (%1$s)", 
          errorReason.toString()); 
        Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show(); 
       } 
      } 

     }); 


     android.support.v4.app.FragmentManager fragmentManager = getChildFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.youtube_fragment,youTubePlayerFragment).commit(); 
     MainActivity.isYoutubeReadyHoritzontal=true; 

} 

XML

<FrameLayout 
         android:orientation="vertical" 
         android:layout_width="match_parent" 
         android:layout_height="fill_parent" 

         android:id="@+id/youtube_fragment" > 
+0

Я перехожу к мероприятию http://javatechig.com/android/youtubeplayerview-example-in-android-using-youtube-api, но horitzontal не работает –

+0

Я так же поступаю с сегодняшнего дня –

ответ

1

Я была такая же проблема, и она была вызвана неспособностью правильно распоряжаться предыдущего экземпляра проигрывателя. Обязательно позвоните по номеру youTubePlayer.release(), когда он больше не нужен.

Смежные вопросы