2015-10-06 15 views
6

Mam problem z YouTube (zawsze ładuję).YouTubeTlayerSupportFragment YouTube nie działa poprawnie (ładowanie zawsze?)

Wygląda na to, że działa poprawnie "ale tylko po raz pierwszy", chcę powiedzieć, że pierwsza instancja (pierwsza operacja) działa poprawnie i ładuje się prawidłowo pionowo i pionowo, ale gdy zmieni fragment ->fragmentManager.beginTransaction() w mojej głównej funkcji (Mam funkcję we wszystkich fragmenty nazywa tę metodę do beginTransaction), a po tym, jak przejść do -> beginTransaction YouTube -> vIDEO zawsze obciążenia:

Przykład:

Krok 1

pierwszy raz -> główną działalność -> beginTransacti YouTube -> kliknij - -> Obciążenie poprawnie

Krok 2

Drugi raz -> główną działalność -> beginTransaction YouTube -> kliknij - -> Obciążenie zawsze

Close App (Menu) i powtórz krok 1 i 2.

To jest mój kod:

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

Przekazuję do działania http://javatechig.com/android/youtubeplayerview-example-in-android-using-youtube-api, ale horitzontal nie działa –

+0

Otrzymuję takie samo zachowanie od dzisiaj –

Odpowiedz

1

miałem ten sam problem i to było spowodowane brakiem prawidłowego rozporządzania poprzedniej instancji odtwarzacza. Pamiętaj, aby zadzwonić pod numer youTubePlayer.release(), gdy nie jest już potrzebny.