package com.example.gsyvideoplayer; import android.annotation.TargetApi; import android.content.pm.ActivityInfo; 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 android.view.View; import android.widget.ImageView; import com.example.gsyvideoplayer.listener.OnTransitionListener; import com.example.gsyvideoplayer.model.SwitchVideoModel; import com.example.gsyvideoplayer.video.SampleVideo; import com.shuyu.gsyvideoplayer.GSYVideoPlayer; import com.shuyu.gsyvideoplayer.utils.FileUtils; import com.shuyu.gsyvideoplayer.utils.OrientationUtils; import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer; import java.io.File; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** * 单独的视频播放页面 * Created by shuyu on 2016/11/11. */ public class PlayActivity extends AppCompatActivity { public final static String IMG_TRANSITION = "IMG_TRANSITION"; public final static String TRANSITION = "TRANSITION"; @BindView(R.id.video_player) SampleVideo videoPlayer; OrientationUtils orientationUtils; private boolean isTransition; private Transition transition; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play); ButterKnife.bind(this); isTransition = getIntent().getBooleanExtra(TRANSITION, false); init(); } private void init() { String url = "http://baobab.wdjcdn.com/14564977406580.mp4"; //String url = "http://7xse1z.com1.z0.glb.clouddn.com/1491813192"; //需要路径的 //videoPlayer.setUp(url, true, new File(FileUtils.getPath()), ""); //借用了jjdxm_ijkplayer的URL String source1 = "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4"; String name = "普通"; SwitchVideoModel switchVideoModel = new SwitchVideoModel(name, source1); String source2 = "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f30.mp4"; String name2 = "清晰"; SwitchVideoModel switchVideoModel2 = new SwitchVideoModel(name2, source2); List list = new ArrayList<>(); list.add(switchVideoModel); list.add(switchVideoModel2); videoPlayer.setUp(list, true, ""); //增加封面 ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setImageResource(R.mipmap.xxx1); videoPlayer.setThumbImageView(imageView); //增加title videoPlayer.getTitleTextView().setVisibility(View.VISIBLE); videoPlayer.getTitleTextView().setText("测试视频"); //videoPlayer.setSpeed(2f); //设置返回键 videoPlayer.getBackButton().setVisibility(View.VISIBLE); //设置旋转 orientationUtils = new OrientationUtils(this, videoPlayer); //设置全屏按键功能 videoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { orientationUtils.resolveByClick(); } }); //videoPlayer.setBottomProgressBarDrawable(getResources().getDrawable(R.drawable.video_new_progress)); //videoPlayer.setDialogVolumeProgressBar(getResources().getDrawable(R.drawable.video_new_volume_progress_bg)); //videoPlayer.setDialogProgressBar(getResources().getDrawable(R.drawable.video_new_progress)); //videoPlayer.setBottomShowProgressBarDrawable(getResources().getDrawable(R.drawable.video_new_seekbar_progress), //getResources().getDrawable(R.drawable.video_new_seekbar_thumb)); //videoPlayer.setDialogProgressColor(getResources().getColor(R.color.colorAccent), -11); //是否可以滑动调整 videoPlayer.setIsTouchWiget(true); //设置返回按键功能 videoPlayer.getBackButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); //过渡动画 initTransition(); } @Override protected void onPause() { super.onPause(); videoPlayer.onVideoPause(); } @Override protected void onResume() { super.onResume(); } @TargetApi(Build.VERSION_CODES.KITKAT) @Override protected void onDestroy() { super.onDestroy(); if (orientationUtils != null) orientationUtils.releaseListener(); } @Override public void onBackPressed() { //先返回正常状态 if (orientationUtils.getScreenType() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) { videoPlayer.getFullscreenButton().performClick(); return; } //释放所有 videoPlayer.setStandardVideoAllCallBack(null); GSYVideoPlayer.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; } }