package com.example.gsyvideoplayer; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.support.v4.view.ViewCompat; import android.support.v7.app.AppCompatActivity; import android.transition.Transition; import com.example.gsyvideoplayer.listener.OnTransitionListener; import com.example.gsyvideoplayer.video.EmptyControlVideo; import com.shuyu.gsyvideoplayer.GSYVideoManager; import com.shuyu.gsyvideoplayer.utils.OrientationUtils; import butterknife.BindView; import butterknife.ButterKnife; /** * 单独的视频播放页面 * Created by shuyu on 2016/11/11. */ public class PlayEmptyControlActivity extends AppCompatActivity { public final static String IMG_TRANSITION = "IMG_TRANSITION"; public final static String TRANSITION = "TRANSITION"; @BindView(R.id.video_player) EmptyControlVideo videoPlayer; OrientationUtils orientationUtils; private boolean isTransition; private Transition transition; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play_empty_control); ButterKnife.bind(this); isTransition = getIntent().getBooleanExtra(TRANSITION, false); init(); } private void init() { String url = "https://res.exexm.com/cw_145225549855002"; videoPlayer.setUp(url, true, ""); //过渡动画 initTransition(); } @Override protected void onPause() { super.onPause(); } @Override protected void onResume() { super.onResume(); } @TargetApi(Build.VERSION_CODES.KITKAT) @Override protected void onDestroy() { super.onDestroy(); videoPlayer.release(); if (orientationUtils != null) orientationUtils.releaseListener(); } @Override public void onBackPressed() { //释放所有 videoPlayer.setVideoAllCallBack(null); GSYVideoManager.releaseAllVideos(); if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { super.onBackPressed(); } else { new Handler().postDelayed(new Runnable() { @Override public void run() { finish(); overridePendingTransition(R.anim.abc_fade_in, R.anim.abc_fade_out); } }, 500); } } private void initTransition() { if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { postponeEnterTransition(); ViewCompat.setTransitionName(videoPlayer, IMG_TRANSITION); addTransitionListener(); startPostponedEnterTransition(); } else { videoPlayer.startPlayLogic(); } } @TargetApi(Build.VERSION_CODES.LOLLIPOP) private boolean addTransitionListener() { transition = getWindow().getSharedElementEnterTransition(); if (transition != null) { transition.addListener(new OnTransitionListener(){ @Override public void onTransitionEnd(Transition transition) { super.onTransitionEnd(transition); videoPlayer.startPlayLogic(); transition.removeListener(this); } }); return true; } return false; } }