0

I have set up a YouTubePlayerView which works perfectly but I face a weird problem. When I go to another Fragment and then go back, YouTubePlayerView can't load the video, even if the exact code is executed.

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

I have tried this answer with no success at all.

Any ideas?

stavros.3p
  • 2,244
  • 6
  • 20
  • 37

1 Answers1

0

I found the solution if anyone facing the same problem. Before leaving the fragment do:

youtubePlayer.pause();
youtubePlayer.release();
stavros.3p
  • 2,244
  • 6
  • 20
  • 37