2016-06-16 12 views
0

ich ein Youtube-Player YouTubePlayerSupportFragment in einem ViewPager umgesetzt haben, die ich erfolgreich getan haben. Das Problem, das ich bekomme, ist YoutubePlayer pausiert in jeder Sekunde, wenn ich versuchte, es zu spielen. Aber wenn ich es im Vollbildmodus spiele, dann spielt es perfekt, hat aber Probleme beim Abspielen innerhalb von View Pager. Der Code für die YouTubePlayerSupportFragment ist:Youtube-Player in jedem zweiten Pause bekommen, die Innenansicht Pager ist

private void initYoutubeFragment() { 
     final YouTubePlayerSupportFragment youTubePlayerFragment = 
       YouTubePlayerSupportFragment.newInstance(); 
     FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
     transaction.add(R.id.fl_coach_profile_youtube, youTubePlayerFragment).commit(); 
     youTubePlayerFragment.initialize(getString(R.string.youtube_player_api_key) 
       , new YouTubePlayer.OnInitializedListener() { 
        @Override 
        public void onInitializationSuccess(YouTubePlayer.Provider provider, 
                 YouTubePlayer player, boolean wasRestored) { 
         mbIsVideoRestored = wasRestored; 
         if (!wasRestored) { 
          mYoutubePlayer = player; 
          mYoutubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT); 
          mYoutubePlayer.setPlaybackEventListener(mPlaybackEventListener); 
          mYoutubePlayer.setPlayerStateChangeListener(mPlayerStateChangeListener); 
         } else { 
          player.play(); 
         } 
        } 

        @Override 
        public void onInitializationFailure(YouTubePlayer.Provider provider, 
                 YouTubeInitializationResult error) { 
        } 
       }); 
    } 

Hörer für den Spieler

// Youtube player event listener 
    private YouTubePlayer.PlaybackEventListener mPlaybackEventListener = new YouTubePlayer.PlaybackEventListener() { 

     @Override 
     public void onBuffering(boolean arg0) { 
     } 

     @Override 
     public void onPaused() { 

     } 

     @Override 
     public void onPlaying() { 

     } 

     @Override 
     public void onSeekTo(int arg0) { 
     } 

     @Override 
     public void onStopped() { 

     } 

    }; 

    // Youtube player state change listener 
    private YouTubePlayer.PlayerStateChangeListener mPlayerStateChangeListener = new YouTubePlayer.PlayerStateChangeListener() { 

     @Override 
     public void onAdStarted() { 
     } 

     @Override 
     public void onError(YouTubePlayer.ErrorReason arg0) { 
     } 

     @Override 
     public void onLoaded(String arg0) { 
     } 

     @Override 
     public void onLoading() { 

     } 

     @Override 
     public void onVideoEnded() { 
     } 

     @Override 
     public void onVideoStarted() { 

     } 
    }; 
+0

Was bedeutet y unser Layout sieht aus? Die Youtube-Android-Bibliothek verhindert, dass Sie etwas in Ihrer Youtube-Ansicht überlagern. – JohnWowUs

+0

Es ist ein FrameLayout, das ein Fragment ist. Verwendung für ViewPager – Pankaj

Antwort

1

Verwenden release() Methode vor, um einen anderen Fragment bewegen:

youTubePlayer.release();

+0

Dieser Code funktioniert für mich. –