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

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.example.gsyvideoplayer.R;
import com.example.gsyvideoplayer.model.VideoModel;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
S
shuyu 已提交
11
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
G
guoshuyu 已提交
12
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
S
shuyu 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * Created by guoshuyu on 2017/1/9.
 */

public class RecyclerItemNormalHolder extends RecyclerItemBaseHolder {

    public final static String TAG = "RecyclerView2List";

    protected Context context = null;
S
shuyu 已提交
27

S
shuyu 已提交
28 29 30 31 32
    @BindView(R.id.video_item_player)
    StandardGSYVideoPlayer gsyVideoPlayer;

    ImageView imageView;

S
shuyu 已提交
33 34
    GSYVideoOptionBuilder gsyVideoOptionBuilder;

S
shuyu 已提交
35 36 37 38 39
    public RecyclerItemNormalHolder(Context context, View v) {
        super(v);
        this.context = context;
        ButterKnife.bind(this, v);
        imageView = new ImageView(context);
S
shuyu 已提交
40
        gsyVideoOptionBuilder = new GSYVideoOptionBuilder();
S
shuyu 已提交
41 42 43 44 45 46 47 48 49 50 51 52
    }

    public void onBind(final int position, VideoModel videoModel) {

        //增加封面
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        if (position % 2 == 0) {
            imageView.setImageResource(R.mipmap.xxx1);
        } else {
            imageView.setImageResource(R.mipmap.xxx2);
        }
        if (imageView.getParent() != null) {
S
shuyu 已提交
53
            ViewGroup viewGroup = (ViewGroup) imageView.getParent();
S
shuyu 已提交
54 55
            viewGroup.removeView(imageView);
        }
S
shuyu 已提交
56 57 58
        String url;
        String title;
        if (position % 2 == 0) {
G
guoshuyu 已提交
59
            url = "https://res.exexm.com/cw_145225549855002";
S
shuyu 已提交
60 61 62 63 64
            title = "这是title";
        } else {
            url = "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4";
            title = "哦?Title?";
        }
G
guoshuyu 已提交
65
        //防止错位,离开释放
G
guoshuyu 已提交
66
        //gsyVideoPlayer.initUIState();
S
shuyu 已提交
67 68 69 70
        gsyVideoOptionBuilder
                .setIsTouchWiget(false)
                .setThumbImageView(imageView)
                .setUrl(url)
G
guoshuyu 已提交
71
                .setSetUpLazy(true)//lazy可以防止滑动卡顿
S
shuyu 已提交
72 73 74 75 76 77 78 79
                .setVideoTitle(title)
                .setCacheWithPlay(true)
                .setRotateViewAuto(true)
                .setLockLand(true)
                .setPlayTag(TAG)
                .setShowFullAnimation(true)
                .setNeedLockFull(true)
                .setPlayPosition(position)
G
guoshuyu 已提交
80
                .setVideoAllCallBack(new GSYSampleCallBack() {
S
shuyu 已提交
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
                    @Override
                    public void onPrepared(String url, Object... objects) {
                        super.onPrepared(url, objects);
                        if (!gsyVideoPlayer.isIfCurrentIsFullscreen()) {
                            //静音
                            GSYVideoManager.instance().setNeedMute(true);
                        }

                    }

                    @Override
                    public void onQuitFullscreen(String url, Object... objects) {
                        super.onQuitFullscreen(url, objects);
                        //全屏不静音
                        GSYVideoManager.instance().setNeedMute(true);
                    }

                    @Override
                    public void onEnterFullscreen(String url, Object... objects) {
                        super.onEnterFullscreen(url, objects);
                        GSYVideoManager.instance().setNeedMute(false);
G
guoshuyu 已提交
102
                        gsyVideoPlayer.getCurrentPlayer().getTitleTextView().setText((String)objects[0]);
S
shuyu 已提交
103 104
                    }
                }).build(gsyVideoPlayer);
S
shuyu 已提交
105

S
shuyu 已提交
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129

        //增加title
        gsyVideoPlayer.getTitleTextView().setVisibility(View.GONE);

        //设置返回键
        gsyVideoPlayer.getBackButton().setVisibility(View.GONE);

        //设置全屏按键功能
        gsyVideoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                resolveFullBtn(gsyVideoPlayer);
            }
        });
    }

    /**
     * 全屏幕按键处理
     */
    private void resolveFullBtn(final StandardGSYVideoPlayer standardGSYVideoPlayer) {
        standardGSYVideoPlayer.startWindowFullscreen(context, true, true);
    }

}