播放完后停在第一帧(缺少大小+再次播放逻辑)

This commit is contained in:
liujing
2020-10-19 21:03:58 +08:00
parent c418ac9a5a
commit afca3396fc
3 changed files with 47 additions and 18 deletions

View File

@@ -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() {
//移除窗体