PlayActivity.java 6.2 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


import com.example.gsyvideoplayer.listener.OnTransitionListener;
S
1.4.4  
shuyu 已提交
15 16
import com.example.gsyvideoplayer.model.SwitchVideoModel;
import com.example.gsyvideoplayer.video.SampleVideo;
S
shuyu 已提交
17
import com.shuyu.gsyvideoplayer.GSYVideoPlayer;
S
1.3.0  
shuyu 已提交
18
import com.shuyu.gsyvideoplayer.utils.FileUtils;
S
shuyu 已提交
19 20 21
import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;

S
1.3.0  
shuyu 已提交
22
import java.io.File;
S
1.4.4  
shuyu 已提交
23 24
import java.util.ArrayList;
import java.util.List;
S
1.3.0  
shuyu 已提交
25

S
shuyu 已提交
26 27 28
import butterknife.BindView;
import butterknife.ButterKnife;

S
shuyu 已提交
29 30 31 32
/**
 * 单独的视频播放页面
 * Created by shuyu on 2016/11/11.
 */
S
shuyu 已提交
33 34 35 36 37 38
public class PlayActivity extends AppCompatActivity {

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

    @BindView(R.id.video_player)
S
1.4.4  
shuyu 已提交
39
    SampleVideo videoPlayer;
S
shuyu 已提交
40 41 42 43 44

    OrientationUtils orientationUtils;

    private boolean isTransition;

S
1.3.3  
shuyu 已提交
45 46
    private Transition transition;

S
shuyu 已提交
47 48 49 50 51 52 53 54 55 56 57
    @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 已提交
58
        //需要路径的
S
shuyu 已提交
59
        //videoPlayer.setUp(url, true, new File(FileUtils.getPath()), "");
S
1.4.4  
shuyu 已提交
60

S
readme  
shuyu 已提交
61
        //借用了jjdxm_ijkplayer的URL
S
1.4.4  
shuyu 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74
        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<SwitchVideoModel> list = new ArrayList<>();
        list.add(switchVideoModel);
        list.add(switchVideoModel2);

        videoPlayer.setUp(list, true, "");
S
shuyu 已提交
75

S
shuyu 已提交
76 77 78 79 80
        //增加封面
        ImageView imageView = new ImageView(this);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setImageResource(R.mipmap.xxx1);
        videoPlayer.setThumbImageView(imageView);
S
shuyu 已提交
81

S
shuyu 已提交
82 83 84 85 86
        //增加title
        videoPlayer.getTitleTextView().setVisibility(View.VISIBLE);
        videoPlayer.getTitleTextView().setText("测试视频");

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

S
shuyu 已提交
89
        //设置旋转
S
shuyu 已提交
90 91
        orientationUtils = new OrientationUtils(this, videoPlayer);

S
shuyu 已提交
92
        //设置全屏按键功能
93
        videoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
S
shuyu 已提交
94 95 96 97 98 99
            @Override
            public void onClick(View v) {
                orientationUtils.resolveByClick();
            }
        });

S
1.4.4  
shuyu 已提交
100 101 102 103 104 105
        //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.8  
shuyu 已提交
106

S
1.1.4  
shuyu 已提交
107 108 109
        //是否可以滑动调整
        videoPlayer.setIsTouchWiget(true);

S
shuyu 已提交
110
        //设置返回按键功能
S
shuyu 已提交
111
        videoPlayer.getBackButton().setOnClickListener(new View.OnClickListener() {
S
shuyu 已提交
112 113 114 115 116 117
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });

S
shuyu 已提交
118
        //过渡动画
S
shuyu 已提交
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
        initTransition();
    }


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

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

S
1.3.3  
shuyu 已提交
134
    @TargetApi(Build.VERSION_CODES.KITKAT)
S
shuyu 已提交
135 136 137
    @Override
    protected void onDestroy() {
        super.onDestroy();
S
1.3.3  
shuyu 已提交
138 139
        if (orientationUtils != null)
            orientationUtils.releaseListener();
S
shuyu 已提交
140 141 142 143
    }

    @Override
    public void onBackPressed() {
S
shuyu 已提交
144
        //先返回正常状态
S
shuyu 已提交
145
        if (orientationUtils.getScreenType() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
146
            videoPlayer.getFullscreenButton().performClick();
S
shuyu 已提交
147 148
            return;
        }
S
shuyu 已提交
149
        //释放所有
S
shuyu 已提交
150
        videoPlayer.setStandardVideoAllCallBack(null);
S
shuyu 已提交
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
        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 已提交
168
            videoPlayer.startPlayLogic();
S
shuyu 已提交
169 170 171 172 173
        }
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private boolean addTransitionListener() {
S
1.3.3  
shuyu 已提交
174
        transition = getWindow().getSharedElementEnterTransition();
S
shuyu 已提交
175
        if (transition != null) {
176 177 178 179 180 181 182 183
            transition.addListener(new OnTransitionListener(){
                @Override
                public void onTransitionEnd(Transition transition) {
                    super.onTransitionEnd(transition);
                    videoPlayer.startPlayLogic();
                    transition.removeListener(this);
                }
            });
S
shuyu 已提交
184 185 186 187 188 189
            return true;
        }
        return false;
    }

}