MVVM以及抖音视频播放

package com.example.day1.base.Apdata;

import android.view.View;

import androidx.annotation.NonNull;

import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.example.day1.R;
import com.example.day1.base.Entity.VideoEntity;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;

public class MyRecommenApdata1 extends BaseMultiItemQuickAdapter<VideoEntity.DataDTO, BaseViewHolder> {


    public MyRecommenApdata1(){
        addItemType(VideoEntity.VIDEO, R.layout.item3);
        addItemType(VideoEntity.FULL,R.layout.item1);
        addItemType(VideoEntity.LIVE,R.layout.item2);
    }
    @Override
    protected void convert(@NonNull BaseViewHolder baseViewHolder, VideoEntity.DataDTO dataDTO) {

        switch (dataDTO.getType()){

            case VideoEntity.VIDEO: {
                StandardGSYVideoPlayer standardGSYVideoPlayer = baseViewHolder.getView(R.id.gsy);
                standardGSYVideoPlayer.setUp(dataDTO.getVideopath(), true, "");
                standardGSYVideoPlayer.getBackButton().setVisibility(View.GONE);
            }
                break;
            case VideoEntity.FULL: {
                StandardGSYVideoPlayer standardGSYVideoPlayer = baseViewHolder.getView(R.id.gsy);
                standardGSYVideoPlayer.setUp(dataDTO.getVideopath(), true, "");
                standardGSYVideoPlayer.getBackButton().setVisibility(View.GONE);
            }
                break;
            case VideoEntity.LIVE:
                StandardGSYVideoPlayer standardGSYVideoPlayer=baseViewHolder.getView(R.id.gsy);
                standardGSYVideoPlayer.setUp(dataDTO.getVideopath(),true,"");
                standardGSYVideoPlayer.getBackButton().setVisibility(View.GONE);
                break;
        }
    }
}

//适配器进行数据赋值

package com.example.day1.base.friagemnt1;

import android.os.Bundle;

import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.LinearLayoutManager;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.day1.R;
import com.example.day1.base.Apdata.MyRecommenAdapter;
import com.example.day1.base.Apdata.MyRecommenApdata1;
import com.example.day1.base.Entity.VideoEntity;
import com.example.day1.base.UI.DYLinearLayout;
import com.example.day1.base.View.BaseFragment;
import com.example.day1.base.Viewmodel.Videovieomodel;
import com.example.day1.databinding.FragmentRecommendBinding;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;

import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link RecommendFragment#newInstance} factory method to
 * create an instance of this fragment.
 */
public class RecommendFragment extends BaseFragment<FragmentRecommendBinding, Videovieomodel> {



    MyRecommenApdata1 myRecommenAdapter;
    // TODO: Rename and change types and number of parameters
    public static RecommendFragment newInstance() {
        RecommendFragment fragment = new RecommendFragment();
        Bundle args = new Bundle();
        fragment.setArguments(args);
        return fragment;
    }
    @Override
    protected void initdata() {
        myRecommenAdapter=new MyRecommenApdata1();
        mustDATAding.rvRecommend.setAdapter(myRecommenAdapter);
        mustDATAding.rvRecommend.setLayoutManager(new LinearLayoutManager(getContext()));
        DYLinearLayout dyLinearLayout=new DYLinearLayout(getContext());
        mustDATAding.rvRecommend.setLayoutManager(dyLinearLayout);
        mustDATAding.rvRecommend.setOnScrollChangeListener(new View.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View view, int i, int i1, int i2, int i3) {
                int lastCompletelyVisibleItemPosition = dyLinearLayout.findFirstVisibleItemPosition();
                StandardGSYVideoPlayer standardGSYVideoPlayer= (StandardGSYVideoPlayer) myRecommenAdapter.getViewByPosition(lastCompletelyVisibleItemPosition,R.id.gsy);
                standardGSYVideoPlayer.startPlayLogic();
            }
        });

    }

    @Override
    protected void handsercher() {
        super.handsercher();
        mviewmodel.mutableLiveData.observe(this, new Observer<VideoEntity>() {
            @Override
            public void onChanged(VideoEntity videoEntity) {
               List<VideoEntity.DataDTO> dataDTOS=videoEntity.getData();
               myRecommenAdapter.getData().addAll(dataDTOS);
               myRecommenAdapter.notifyDataSetChanged();
            }
        });
    }

    @Override
    protected void initview() {
        mviewmodel.getvdieomodel(3,10);

    }

    @Override
    protected Class<Videovieomodel> getviewmodel() {
        return Videovieomodel.class;
    }

    @Override
    protected int getlayout() {
        return R.layout.fragment_recommend;
    }
}

//进行视频器引用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值