0

我已经设置了一个运行良好的 YouTubePlayerView,但我遇到了一个奇怪的问题。当我转到另一个 Fragment 然后返回时,YouTubePlayerView 无法加载视频,即使执行了确切的代码。

private String currentVideoID "p450mjB3mxc";
private YouTubePlayerView youtubeView;

private void init(View view)
{
    youtubeView = view.findViewById(R.id.youtubeView);
    new YoutubeHelper(youtubeView,currentVideoID,this);
}

public void setYoutubePlayer(YouTubePlayer youtubePlayerPublic)
{
        this.youtubePlayer = youtubePlayerPublic;
        youtubePlayer.loadVideo(currentVideoID); 
}

YoutubeHelper.class:

public class YoutubeHelper {

    public final static String YoutubeAPIKey="MY_API_KEY";
    public YouTubePlayer youtubePlayerPublic;
    private YouTubePlayerView youTubeView;

    public YoutubeHelper(YouTubePlayerView youTubeView, String initialVideo, MainFragment fragment)
    {
        this.youTubeView = youTubeView;
        init(initialVideo,fragment);
    }

    private void init(String initialVideo,final MainFragment fragment)
    {
        youTubeView.initialize(YoutubeAPIKey,
                new YouTubePlayer.OnInitializedListener() {
                    @Override
                    public void onInitializationSuccess(YouTubePlayer.Provider provider,
                                                        final YouTubePlayer youTubePlayer, boolean b) {

                        youTubePlayer.cueVideo(initialVideo);
                        youtubePlayerPublic = youTubePlayer;
                        fragment.setYoutubePlayer(youTubePlayer);
                    }
                    @Override
                    public void onInitializationFailure(YouTubePlayer.Provider provider,
                                                        YouTubeInitializationResult youTubeInitializationResult) {
                        Log.d("Youtube Error:", youTubeInitializationResult.toString());
                    }
                });
    } 
}

我已经尝试过这个答案,但完全没有成功。

有任何想法吗?

4

1 回答 1

0

如果有人遇到同样的问题,我找到了解决方案。在离开片段之前,请执行以下操作:

youtubePlayer.pause();
youtubePlayer.release();
于 2020-01-12T19:31:09.223 回答