fix [修复-视频播放问题]

This commit is contained in:
hch 2024-04-02 10:02:32 +08:00
parent 97c692d41d
commit ddaed22630
4 changed files with 41 additions and 42 deletions

View File

@ -15,6 +15,7 @@ import com.google.android.exoplayer2.PlaybackException;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.video.VideoSize;
import com.yunbao.common.bean.ActiveBean;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
@ -57,14 +58,7 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
}
private void intiPlayView() {
DefaultLoadControl control = new DefaultLoadControl.Builder()
.setPrioritizeTimeOverSizeThresholds(false)
.setBackBuffer(10_000, true)
.setBufferDurationsMs(500,
5_000,
150,
200)
.build();
DefaultLoadControl control = new DefaultLoadControl.Builder().setPrioritizeTimeOverSizeThresholds(false).setBackBuffer(10_000, true).setBufferDurationsMs(500, 5_000, 150, 200).build();
mPlayer = new ExoPlayer.Builder(mContext).setLoadControl(control).build();
placeholderView = findViewById(com.yunbao.live.R.id.placeholderView);
mPlayer = new ExoPlayer.Builder(mContext).setLoadControl(control).build();
@ -87,10 +81,22 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
case Player.STATE_ENDED://播放器完整播放了所有媒体
replay();
break;
}
}
@Override
public void onVideoSizeChanged(VideoSize videoSize) {
Player.Listener.super.onVideoSizeChanged(videoSize);
if (mActionListener != null) {
mActionListener.onVideoSize(videoSize.height, videoSize.width);
}
}
@Override
public void onRenderedFirstFrame() {
Player.Listener.super.onRenderedFirstFrame();
}
@Override
public void onPlayerError(PlaybackException error) {
Player.Listener.super.onPlayerError(error);
@ -259,6 +265,8 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
void onFirstFrame();
void onVideoSize(int height, int width);
void onProgress(int progress, int duration);
}

View File

@ -57,7 +57,7 @@ import java.util.List;
public class VideoPlayWrapViewHolder extends AbsViewHolder implements View.OnClickListener {
private ViewGroup mVideoContainer;
private MyImageView mCover;
private ImageView mCover;
private ImageView mAvatar;
private TextView mName;
private TextView mTitle;
@ -101,7 +101,7 @@ public class VideoPlayWrapViewHolder extends AbsViewHolder implements View.OnCli
progressCount = (TextView) findViewById(R.id.progressCount);
mVideoContainer = (ViewGroup) findViewById(R.id.video_container);
mCover = (MyImageView) findViewById(R.id.cover);
mCover = (ImageView) findViewById(R.id.cover);
mAvatar = (ImageView) findViewById(R.id.avatar);
mName = (TextView) findViewById(R.id.name);
mTitle = (TextView) findViewById(R.id.title);
@ -303,20 +303,6 @@ public class VideoPlayWrapViewHolder extends AbsViewHolder implements View.OnCli
mCover.requestLayout();
}
mCover.setImageDrawable(drawable);
/*
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
int imageWidth = drawable.getIntrinsicWidth();
int imageHeight = drawable.getIntrinsicHeight();
//宽度固定,然后根据原始宽高比得到此固定宽度需要的高度
//screenWidth 是屏幕宽度
int height = mCover.getWidth() * imageHeight / imageWidth;
ViewGroup.LayoutParams para = mCover.getLayoutParams();
para.height = height;
para.width = mCover.getWidth();*/
//mCover.setImageDrawable(drawable);
}
}
@ -367,6 +353,15 @@ public class VideoPlayWrapViewHolder extends AbsViewHolder implements View.OnCli
}
}
public void onSetVideoCoverSize(int height, int width) {
if (mCover != null) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
params.width = width;
params.height = height;
}
}
/**
* 滑出屏幕
*/
@ -529,20 +524,7 @@ public class VideoPlayWrapViewHolder extends AbsViewHolder implements View.OnCli
} else {
image = mVideoBean.getVideo() + "?vframe/jpg/offset/0";
}
new SharePopDialog(mContext)
.setShareType(SharePopDialog.TYPE_VIDEO)
.setShareData(ShareBean.ShareBuilder.create()
.setShareType(SharePopDialog.TYPE_VIDEO)
.setUid(CommonAppConfig.getInstance().getUid())
.setCover(StringUtil.isEmpty(image) ? mVideoBean.getUser_avatar() : image)
.setTitle(StringUtil.isEmpty(mVideoBean.getContent()) ? mVideoBean.getUser_name() : JSONObject.parseObject(mVideoBean.getContent()).getString("msg"))
.setAnchorId(mVideoBean.getUser_id())
.setAnchorName(mVideoBean.getUser_name())
.setAnchorAvatar(mVideoBean.getUser_avatar())
.setExtraData(mVideoBean.getId())
.build()
)
.showDialog();
new SharePopDialog(mContext).setShareType(SharePopDialog.TYPE_VIDEO).setShareData(ShareBean.ShareBuilder.create().setShareType(SharePopDialog.TYPE_VIDEO).setUid(CommonAppConfig.getInstance().getUid()).setCover(StringUtil.isEmpty(image) ? mVideoBean.getUser_avatar() : image).setTitle(StringUtil.isEmpty(mVideoBean.getContent()) ? mVideoBean.getUser_name() : JSONObject.parseObject(mVideoBean.getContent()).getString("msg")).setAnchorId(mVideoBean.getUser_id()).setAnchorName(mVideoBean.getUser_name()).setAnchorAvatar(mVideoBean.getUser_avatar()).setExtraData(mVideoBean.getId()).build()).showDialog();
}
public void release() {

View File

@ -241,6 +241,13 @@ public class VideoScrollViewHolder extends AbsViewHolder implements VideoScrollA
}
}
@Override
public void onVideoSize(int height, int width) {
if (mVideoPlayWrapViewHolder != null) {
mVideoPlayWrapViewHolder.onSetVideoCoverSize(height, width);
}
}
@Override
public void onProgress(int progress, int duration) {
if (mVideoPlayWrapViewHolder != null) {
@ -318,7 +325,7 @@ public class VideoScrollViewHolder extends AbsViewHolder implements VideoScrollA
*/
private void openCommentInputWindow(boolean openFace) {
if (mVideoBean != null) {
((AbsVideoPlayActivity) mContext).openCommentInputWindowNew(openFace, mVideoBean.getId(), mVideoBean.getUser_id(), false,"",Integer.parseInt(mVideoBean.getComment_num()));
((AbsVideoPlayActivity) mContext).openCommentInputWindowNew(openFace, mVideoBean.getId(), mVideoBean.getUser_id(), false, "", Integer.parseInt(mVideoBean.getComment_num()));
}
}

View File

@ -10,11 +10,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.yunbao.video.views.MyImageView
<ImageView
android:id="@+id/cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:scaleType="centerCrop" />
<RelativeLayout
android:layout_width="50dp"