PlayActivity.java 5.3 KB
Newer Older
S
shuyu 已提交
1 2 3 4 5 6 7 8 9 10
package com.example.gsyvideoplayer;

import android.annotation.TargetApi;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.view.ViewCompat;
import android.support.v7.app.AppCompatActivity;
import android.transition.Transition;
import android.view.View;
S
shuyu 已提交
11
import android.widget.ImageView;
S
shuyu 已提交
12 13 14 15


import com.example.gsyvideoplayer.listener.OnTransitionListener;
import com.shuyu.gsyvideoplayer.GSYVideoPlayer;
S
1.3.0  
shuyu 已提交
16
import com.shuyu.gsyvideoplayer.utils.FileUtils;
S
shuyu 已提交
17 18 19
import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;

S
1.3.0  
shuyu 已提交
20 21
import java.io.File;

S
shuyu 已提交
22 23 24
import butterknife.BindView;
import butterknife.ButterKnife;

S
shuyu 已提交
25 26 27 28
/**
 * 单独的视频播放页面
 * Created by shuyu on 2016/11/11.
 */
S
shuyu 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
public class PlayActivity extends AppCompatActivity {

    public final static String IMG_TRANSITION = "IMG_TRANSITION";
    public final static String TRANSITION = "TRANSITION";

    @BindView(R.id.video_player)
    StandardGSYVideoPlayer videoPlayer;

    OrientationUtils orientationUtils;

    private boolean isTransition;

    @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";
S
1.3.0  
shuyu 已提交
52 53 54
        //需要路径的
        videoPlayer.setUp(url, true, new File(FileUtils.getPath()), "");
        //videoPlayer.setUp(url, true, "");
S
shuyu 已提交
55

S
shuyu 已提交
56 57 58 59 60
        //增加封面
        ImageView imageView = new ImageView(this);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setImageResource(R.mipmap.xxx1);
        videoPlayer.setThumbImageView(imageView);
S
shuyu 已提交
61

S
shuyu 已提交
62 63 64 65 66
        //增加title
        videoPlayer.getTitleTextView().setVisibility(View.VISIBLE);
        videoPlayer.getTitleTextView().setText("测试视频");

        //设置返回键
S
shuyu 已提交
67
        videoPlayer.getBackButton().setVisibility(View.VISIBLE);
S
shuyu 已提交
68

S
shuyu 已提交
69
        //设置旋转
S
shuyu 已提交
70 71
        orientationUtils = new OrientationUtils(this, videoPlayer);

S
shuyu 已提交
72
        //设置全屏按键功能
73
        videoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
S
shuyu 已提交
74 75 76 77 78 79
            @Override
            public void onClick(View v) {
                orientationUtils.resolveByClick();
            }
        });

S
1.1.8  
shuyu 已提交
80 81 82 83 84 85 86
        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);

S
1.1.4  
shuyu 已提交
87 88 89
        //是否可以滑动调整
        videoPlayer.setIsTouchWiget(true);

S
shuyu 已提交
90
        //设置返回按键功能
S
shuyu 已提交
91
        videoPlayer.getBackButton().setOnClickListener(new View.OnClickListener() {
S
shuyu 已提交
92 93 94 95 96 97
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });

S
shuyu 已提交
98
        //过渡动画
S
shuyu 已提交
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
        initTransition();
    }


    @Override
    protected void onPause() {
        super.onPause();
        videoPlayer.onVideoPause();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    public void onBackPressed() {
S
shuyu 已提交
121
        //先返回正常状态
S
shuyu 已提交
122
        if (orientationUtils.getScreenType() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
123
            videoPlayer.getFullscreenButton().performClick();
S
shuyu 已提交
124 125
            return;
        }
S
shuyu 已提交
126
        //释放所有
S
shuyu 已提交
127
        videoPlayer.setStandardVideoAllCallBack(null);
S
shuyu 已提交
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
        GSYVideoPlayer.releaseAllVideos();
        if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            super.onBackPressed();
        } else {
            finish();
            overridePendingTransition(R.anim.abc_fade_in, R.anim.abc_fade_out);
        }
    }


    private void initTransition() {
        if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            postponeEnterTransition();
            ViewCompat.setTransitionName(videoPlayer, IMG_TRANSITION);
            addTransitionListener();
            startPostponedEnterTransition();
        } else {
S
shuyu 已提交
145
            videoPlayer.startPlayLogic();
S
shuyu 已提交
146 147 148 149 150 151 152 153 154 155
        }
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private boolean addTransitionListener() {
        final Transition transition = getWindow().getSharedElementEnterTransition();
        if (transition != null) {
            transition.addListener(new OnTransitionListener() {
                @Override
                public void onTransitionEnd(Transition transition) {
S
shuyu 已提交
156
                    videoPlayer.startPlayLogic();
S
shuyu 已提交
157 158 159 160 161 162 163 164 165
                    transition.removeListener(this);
                }
            });
            return true;
        }
        return false;
    }

}