美文网首页Android音视频系列
DetailVideo-一个无缝切换的GSYVideoPlaye

DetailVideo-一个无缝切换的GSYVideoPlaye

作者: MIRROR1217 | 来源:发表于2020-09-02 17:17 被阅读0次

GSYVideoPlayer是一款开源并且强大的Android视频播放器,具体的可以看官网GSY,里面有很多例子,但是我现在有个需求,需要播放器的进度状态等能无缝的从一个切换到另一个,两者保持一致。Demo中只有从列表切换到详情的时候可以,但是从详情返回时列表重新加载视频了,所以研究了下如何实现双重无缝切换的。

经过研究发现,最重要的是cloneParams方法,该方法会把AVideo的参数状态等克隆到BVideo,然后addTextureView添加播放的view就可以了,具体代码如下:

public class DetailVideo extends StandardGSYVideoPlayer {

    public DetailVideo(Context context, Boolean fullFlag) {
        super(context, fullFlag);
    }

    public DetailVideo(Context context) {
        super(context);
    }

    public DetailVideo(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void init(Context context) {
        super.init(context);
    }

    public void setSurfaceToPlay() {
        addTextureView();

        startProgressTimer();

        getGSYVideoManager().setLastListener(this);
        getGSYVideoManager().setListener(this);

        checkoutState();
    }

    public DetailVideo saveState() {
        DetailVideo switchVideo = new DetailVideo(getContext());
        cloneParams(this, switchVideo);
        return switchVideo;
    }

    public void cloneState(DetailVideo switchVideo) {
        cloneParams(switchVideo, this);
    }
}

效果GIF图片

SVID_20200902_170214_144444.gif
可以看到切换时无缝衔接,Good!
最后,留下Demo地址

相关文章

  • DetailVideo-一个无缝切换的GSYVideoPlaye

    GSYVideoPlayer是一款开源并且强大的Android视频播放器,具体的可以看官网GSY,里面有很多例子,...

  • 无缝切换~

    今天度过了愉快而充实的一天,具体的行程是这样的: 睡到自然醒,大概快十点了吧,然后喝酸奶,吃全麦面包垫垫肚子,做个...

  • 无缝切换

    我来到机场,这里虽不是人声鼎沸,却也是各色人等形色匆匆,背包的,推车的,客服优雅的声音,标准的手势,招牌式微笑,让...

  • 无缝切换

    大家好,今天想跟大家分享一个特别有意思的现象,就是如标题所说,一个人的思维方式居然可以做到无缝切换。 具体是怎样一...

  • 无缝轮播

    无缝细解过程 html css js 无缝轮播js切换动画 css代码 JS代码 循环无缝轮播 CSS js1.首...

  • jQuery实现轮播图无缝(无回滚)滚动切换效果

    HTML 无缝切换轮播图