播放完后停在第一帧(缺少大小+再次播放逻辑)
This commit is contained in:
@@ -1,33 +1,27 @@
|
||||
package com.mogo.module.v2x.scenario.scene.road;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.graphics.Bitmap;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.mogo.map.IDestroyable;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.MarkerExploreWayItem;
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.listener.V2XWindowStatusListener;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.view.TextureVideoView;
|
||||
import com.mogo.service.imageloader.MogoImageView;
|
||||
import com.mogo.utils.BitmapHelper;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import retrofit2.http.Url;
|
||||
|
||||
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||
|
||||
|
||||
@@ -37,6 +31,8 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID
|
||||
private V2XWindowStatusListener mV2XWindowStatusListener;
|
||||
private TextureVideoView mVideoView;
|
||||
private ImageView closeImage;
|
||||
private ImageView mThumbnailImageView;
|
||||
private ImageView windowPalyImageView;
|
||||
|
||||
public V2XRoadVideoWindow() {
|
||||
this(V2XServiceManager.getContext(), null);
|
||||
@@ -59,6 +55,8 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID
|
||||
LayoutInflater.from(context).inflate(R.layout.window_road_video, this);
|
||||
mVideoView = findViewById(R.id.roadVideoView);
|
||||
closeImage = findViewById(R.id.roadVideoClose);
|
||||
mThumbnailImageView = findViewById(R.id.thumbnail_image);
|
||||
windowPalyImageView = findViewById(R.id.window_video_play);
|
||||
closeImage.setOnClickListener(v -> {
|
||||
close();
|
||||
});
|
||||
@@ -76,23 +74,43 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID
|
||||
return;
|
||||
}
|
||||
if (path.contains(".mp4")) {
|
||||
mVideoView.setVisibility(VISIBLE);
|
||||
mVideoView.setVideoPath(path);
|
||||
mVideoView.setOnPreparedListener(mediaPlayer -> {
|
||||
Logger.w(MODULE_NAME, "全屏准备。。。。。");
|
||||
});
|
||||
videoViewStartWithPath(path);
|
||||
|
||||
mVideoView.setOnCompletionListener(mediaPlayer -> {
|
||||
Logger.w(MODULE_NAME, "全屏展示结束...");
|
||||
Logger.w(MODULE_NAME, "视频播放结束...");
|
||||
Bitmap bitmap = BitmapHelper.getVideoThumbnail(path);
|
||||
mThumbnailImageView.setVisibility(View.VISIBLE);
|
||||
mThumbnailImageView.setImageBitmap(bitmap);
|
||||
|
||||
windowPalyImageView.setVisibility(View.VISIBLE);
|
||||
windowPalyImageView.setOnClickListener(v -> {
|
||||
videoViewStartWithPath(path);
|
||||
|
||||
});
|
||||
if (mV2XWindowStatusListener != null) {
|
||||
mV2XWindowStatusListener.onViewClose();
|
||||
}
|
||||
});
|
||||
mVideoView.start();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 视频开始播放
|
||||
* */
|
||||
private void videoViewStartWithPath(String path) {
|
||||
mVideoView.setVisibility(VISIBLE);
|
||||
mVideoView.setVideoPath(path);
|
||||
mVideoView.setOnPreparedListener(mediaPlayer -> {
|
||||
Logger.w(MODULE_NAME, "全屏准备。。。。。");
|
||||
mThumbnailImageView.setVisibility(View.GONE);
|
||||
windowPalyImageView.setVisibility(View.GONE);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
//移除窗体
|
||||
|
||||
Reference in New Issue
Block a user