我有一个Recyclerview,其中包含图像,GIF和视频。所有这些元素都必须具有单击侦听器,才能在另一个片段中全屏打开它们。对于图片和gif,一切正常,但是使用videoview时,单击3次以上会触发onClick。如果我在触摸式监听器上使用,即使我滚动了recyclerview,也会被触发。 我还附加了一个媒体控制器,因为在recyclerview中,我必须使视频静音。
public void setVideo(String url, final int position){
MediaController mc = new MediaController(mContext);
mc.setVisibility(View.GONE);
mc.setAnchorView(videoContent);
mc.setMediaPlayer(videoContent);
videoContent.setMediaController(mc);
String _path = url;
Uri videoUri = Uri.parse(url);
videoContent.setVideoURI(videoUri);
videoContent.setOnPreparedListener(PreparedListener);
videoContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
Log.e("@@@", "Video Touched");
//listener.onMediaPressed(position);
}
return true;
}
});
}
MediaPlayer.OnPreparedListener PreparedListener = new MediaPlayer.OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer m) {
try {
if (m.isPlaying()) {
m.stop();
m.release();
m = new MediaPlayer();
}
m.setVolume(0f, 0f);
m.setLooping(true);
m.start();
} catch (Exception e) {
e.printStackTrace();
}
}
};
答案 0 :(得分:0)
您将在适配器中设置onClickListener
public void onBindViewHolder(@NonNull final MyViewHolder holder, int i) {
holder.video.setOnClickListener(v -> {
//Do stuff
});
}