Ответ 1
Все, что вам нужно сделать, это использовать **Model Class**
.!
Class Video{
String videoUrl; //Http://
int videoDrawable; //R.id.video
String videoName=;
boolean isplaying=flase;
boolean ispuase=false;
int lastDuration=0;
//Constructors
gettter and setter here.!
}
///////////////////
Class AdapterClasss{
int lastpostion=-1;
VideoView videoView ;
public MyViewHolder(View view) {
super(view);
videoView =(VideoView)view.findViewById(R.id.videoView1);
playBtn=(Button)view.findViewById(R.id.playBtn);
pauseBtn=(Button)view.findViewById(R.id.pauseBtn);
}
теперь в Adapter Class
сделать несколько изменений в onBindViewHolder
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
final Video videoObj= videoList.get(position);
/Creating MediaController
holder.playBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MediaController mediaController= new MediaController(this);
mediaController.setAnchorView(holder.videoView);
//specify the location of media file
Uri uri=Uri.parse(Environment.getExternalStorageDirectory().getPath()+
"/media/"+videoObj.getvideoName()+".mp4");
//Setting MediaController and URI, then starting the videoView
videoView.setMediaController(mediaController);
videoView.setVideoURI(uri);
videoView.requestFocus();
lastpostion=position;
if(videoObj.getisPuase())
{
//now here you have to set your duration fro where you want to start your video
if(videoView.ispause())
{
videoView.start();
videoObj.setisPlaying(true);
notifyItemChanged(position);
}
}else if(videoObj.getisPlaying()!=true)
{
videoView.start();
videoObj.setisPlaying(true);
notifyItemChanged(position);
}
}
holder.pauseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int duration = videoView.getDuration();
videoView.pause();
lastDuration.setLastDuration(duration);
videoObj.setisPlaying(false);
videoObj.setisPlaying(true);
}
}