Pankaj
Pankaj

Reputation: 8058

Youtube player getting paused in every second which is inside View Pager

I have implemented a Youtube player using YouTubePlayerSupportFragment inside a ViewPager which I have did successfully. The problem which I am getting is YoutubePlayer getting paused in every second whenever I tried to play it. But if I play it in full screen then its playing perfectly but having issue playing inside View Pager. The code for the YouTubePlayerSupportFragment is:

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) {
                    }
                });
    }

Listeners for the player

// 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() {

        }
    };

Upvotes: 1

Views: 646

Answers (1)

bDroid
bDroid

Reputation: 23

Use release() method before moving to another Fragment:

youTubePlayer.release();

Upvotes: 1

Related Questions