【问题标题】:Youtube player getting paused in every second which is inside View PagerYoutube 播放器在 View Pager 内的每一秒都会暂停
【发布时间】:2016-06-16 08:13:26
【问题描述】:

我已经成功地在 ViewPager 中使用 YouTubePlayerSupportFragment 实现了一个 Youtube 播放器。我遇到的问题是 YoutubePlayer 在我尝试播放时每秒都会暂停。但是,如果我全屏播放,则它可以完美播放,但在 View Pager 中播放时出现问题。 YouTubePlayerSupportFragment 的代码是:

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

播放器的监听器

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

        }
    };

【问题讨论】:

  • 你的布局是什么样的? Youtube android 库将阻止您在 youtube 视图上覆盖任何内容。
  • 它是一个FrameLayout,它是一个片段。用于 ViewPager

标签: android android-viewpager android-youtube-api


【解决方案1】:

在移动到另一个Fragment之前使用release()方法:

youTubePlayer.release();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2015-02-12
    • 2013-08-09
    • 1970-01-01
    相关资源
    最近更新 更多