package com.ved.musicmapapp.fragments; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.TimeUnit; import android.annotation.SuppressLint; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.View; import com.google.android.youtube.player.YouTubeInitializationResult; import com.google.android.youtube.player.YouTubePlayer; import com.google.android.youtube.player.YouTubePlayer.ErrorReason; import com.google.android.youtube.player.YouTubePlayer.OnFullscreenListener; import com.google.android.youtube.player.YouTubePlayer.PlayerStateChangeListener; import com.google.android.youtube.player.YouTubePlayerFragment; import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener; import com.google.android.youtube.player.YouTubePlayer.Provider; import com.google.android.youtube.player.YouTubePlayerSupportFragment; import com.ved.musicmapapp.R; import com.ved.musicmapapp.utils.DeveloperKey; import com.ved.musicmapapp.youtube.Video; public class VideoFragment extends YouTubePlayerSupportFragment implements OnInitializedListener { private YouTubePlayer player; private String videoId; Fragment fragment; // public VideoFragment newVideoInstance(){ // return new VideoFragment(); // } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initialize(DeveloperKey.DEVELOPER_KEY, this); } public VideoFragment(Fragment fragment) { super(); this.fragment = fragment; } @Override public void onDestroy() { if (player != null) { player.release(); } super.onDestroy(); } public void setVideoId(String videoId) { if (videoId != null && !videoId.equals(this.videoId)) { this.videoId = videoId; if (player != null) { player.loadVideo(videoId); // this.player.setPlayerStateChangeListener(playerStateChangeListener); player.play(); } } } public void pause() { if (player != null) { player.pause(); } } public void setPlayerFullScreen(boolean bool){ player.setFullscreen(bool); } @Override public void onInitializationSuccess(Provider provider, YouTubePlayer play, boolean restored) { this.player = play; player.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI); player.setOnFullscreenListener((OnFullscreenListener) fragment); this.player.setPlayerStateChangeListener(playerStateChangeListener); if (!restored && videoId != null) { player.loadVideo(videoId); player.play(); } } @Override public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) { this.player = null; } private PlayerStateChangeListener playerStateChangeListener = new PlayerStateChangeListener() { @Override public void onAdStarted() { Log.i("check","///onVideo AddStarted"); } @Override public void onLoaded(final String id) { Log.i("check","///onVideo Loaded"); player.play(); } @Override public void onLoading() { Log.i("check","///onVideo Loading"); } @Override public void onVideoEnded() { Log.i("check","///onVideo Ended"); if(fragment.getClass().equals(ArtistFragment.class)) ((ArtistFragment)fragment).loadNextSong(); else if(fragment.getClass().equals(PlaylistTracksFragment.class)) ((PlaylistTracksFragment)fragment).loadNextSong(); } @SuppressLint("NewApi") @Override public void onVideoStarted() { Log.i("check","///onVideo Started"); } @Override public void onError(ErrorReason arg0) { Log.i("check","///onVideo Error"); if(fragment.getClass().equals(ArtistFragment.class)) ((ArtistFragment)fragment).loadNextSong(); else if(fragment.getClass().equals(PlaylistTracksFragment.class)) ((PlaylistTracksFragment)fragment).loadNextSong(); } }; }