如何在YouTube播放器API Android中隐藏更多视频(视频建议)

时间:2019-06-11 12:50:33

标签: android youtube-api

我在android中使用youtube播放器api。如何在播放器中隐藏更多视频(视频建议)。

3 个答案:

答案 0 :(得分:2)

我试图寻找相同的解决方案,但找不到任何解决方案。 所以找到了一个解决方法,它会在完成后重置视频。

在您的 onInitializationSuccess 方法中实现 PlayerStateChangeListener 并在 onVideoEnded 方法中重置播放器以在开始时播放视频并暂停它。 (下面是我在 Kotlin 语言中的实现)。 希望任何寻找的人都会发现它很有用。

override fun onInitializationSuccess(
            p0: YouTubePlayer.Provider?,
            p1: YouTubePlayer?,
            p2: Boolean) {
            p1!!.loadVideo(videolink)
            p1.setPlayerStateChangeListener(object:YouTubePlayer.PlayerStateChangeListener{
                override fun onLoading() {}
                override fun onLoaded(p0: String?) {}
                override fun onAdStarted() {}
                override fun onVideoStarted() {}
                override fun onVideoEnded() {
                    p1.seekToMillis(0)
                    p1.pause()
                }
                override fun onError(p0: YouTubePlayer.ErrorReason?) {}

            })
        }

答案 1 :(得分:0)

https://developers.google.com/youtube/player_parameters#Parameters

  

2018年9月25日之后...您将无法禁用   有关的影片。相反,如果rel参数设置为0,则相关   视频将与原来的视频来自同一频道   玩过。

答案 2 :(得分:0)

虽然 YoutubeVideoPlayer 不允许禁用视频推荐,但我发现基于 @Ravi_Dudi 的解决方案 onVideoEnded 回调,/ 而不是

youTubePlayer.seekToMillis(0);
youTubePlayer.pause()

使用

youTubePlayer.cueVideo(videoID);

其中 videoID 是之前播放过的 videoId。 为了更好地理解,以下是完整的代码:

        youTubePlayerView.initialize(getResources().getString(R.string.developer_key), new YouTubePlayer.OnInitializedListener() {

        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer,
                                            boolean wasRestored) {


            youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL);
            youTubePlayer.setFullscreen(true);

            youTubePlayer.loadVideo(videoID);

            youTubePlayer.setPlayerStateChangeListener(new YouTubePlayer.PlayerStateChangeListener() {
                @Override
                public void onLoading() {

                }

                @Override
                public void onLoaded(String s) {

                }

                @Override
                public void onAdStarted() {

                }

                @Override
                public void onVideoStarted() {

                }

                @Override
                public void onVideoEnded() {
                    youTubePlayer.cueVideo(videoID);
                }

                @Override
                public void onError(YouTubePlayer.ErrorReason errorReason) {

                }
            });

        }

        @Override
        public void onInitializationFailure(YouTubePlayer.Provider arg0, YouTubeInitializationResult arg1) {
            //print or show error if initialization failed
            Log.e(TAG, "Youtube Player View initialization failed");
        }
    });