Browse Source

fix: 优化视频播放

master
高志龙 3 months ago
parent
commit
4e9449c0f2
  1. 2
      app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java
  2. 3
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  3. 50
      app/src/main/java/qianmu/container/activity/program/MyPresentation.java
  4. 17
      app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java
  5. 3
      app/src/main/java/qianmu/container/app/Constant.java

2
app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java

@ -211,7 +211,7 @@ public class UpdateFileActivity extends BaseActivity {
sendEmptyMessageDelayed(TYPE_REQUEST_DATA, 1000);
break;
case TYPE_DOWNLOAD_FILE://下载文件
case TYPE_DOWNLOAD_FILE: //下载文件
ContainerService.initFirstTime();
binding.tvCurrentNumber.setText(StringUtil.strSplice("文件下载进度:", String.valueOf(currentCount), " / ", String.valueOf(bigFiles.size() )));
//图片下载完毕进入主界面

3
app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java

@ -327,8 +327,9 @@ public class WebViewActivity extends BaseActivity {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
// proVideo.seekTo(0);
proVideo.pause();
proVideo.stopPlayback();
//proVideo.stopPlayback();
proVideo.setVisibility(View.GONE);
proVideo.setAlpha(1.0f);
}

50
app/src/main/java/qianmu/container/activity/program/MyPresentation.java

@ -10,6 +10,7 @@ import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
@ -2805,43 +2806,23 @@ class MyPresentation extends Presentation {
videoPlayCount1++;
}
//上传播放记录
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String playTime = format.format(System.currentTimeMillis());
// ScreenSaverData.uploadPlayRecord(materials0.getMaterialCode(), materials0.getDuration(), playTime, null, null);
if(materials0.getDuration()>0){
//视频
handler.sendEmptyMessageDelayed(TYPE_UPDATE_VIDE,materials0.getDuration()*1000);
Log.e("(双面屏)TAG","设置视频路径");
videoView.setVideoPath(localPath);
//获取节目第一个视频的第一帧
// if(videoPlayCount==0){
// MediaMetadataRetriever media = new MediaMetadataRetriever();
// media.setDataSource(localPath);
// Bitmap bitmap = media.getFrameAtTime(0);
// if(bitmap==null){
// Log.e("TAG","第一帧为空");
// }else {
// String[] b = StringUtil.strSplice(Constant.CACHE_PATH, materials0.getFileUrl()).split("\\.");
// String imgUrl = b[0]+".jpg";
//
// if(!new File(imgUrl).exists()){
// try {
// FileOutputStream fileOutputStream = new FileOutputStream(imgUrl);
// bitmap.compress(Bitmap.CompressFormat.JPEG,100,fileOutputStream);
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
// }
// }
// //获取视频中的第一帧照片,设置为封面
//// Bitmap bitmap = media.getFrameAtTime(1, MediaMetadataRetriever.OPTION_CLOSEST_SYNC );
//
// }
try {
if (videoView.isPlaying()) {
videoView.stopPlayback();
}
new Handler(Looper.getMainLooper()).postDelayed(() -> {
try {
videoView.setVideoPath(localPath);
} catch (IllegalStateException e) {
Log.e("ViewScreenSaver", "Error setting video path", e);
}
}, 100);
} catch (IllegalStateException e) {
Log.e("ViewScreenSaver", "Error stopping video", e);
}
}else {
//图片
if(TYPE_UPDATE_VIDE==TYPE_UPDATE_VIDEO0){
@ -2862,7 +2843,6 @@ class MyPresentation extends Presentation {
handler.sendEmptyMessageDelayed(TYPE_UPDATE_VIDE,videoComponents.getConfig().getTransitionPeriod()*1000);
Drawable drawable = new BitmapDrawable(localPath);
videoView.setBackground(drawable);
}
}

17
app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java

@ -14,6 +14,7 @@ import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
@ -2904,8 +2905,20 @@ public class ViewScreenSaver extends ViewBase<ViewScreenSaverBinding> {
}
if(materials0.getDuration()>0){
//视频
videoView.setVideoPath(localPath);
try {
if (videoView.isPlaying()) {
videoView.stopPlayback();
}
new Handler(Looper.getMainLooper()).postDelayed(() -> {
try {
videoView.setVideoPath(localPath);
} catch (IllegalStateException e) {
Log.e("ViewScreenSaver", "Error setting video path", e);
}
}, 100);
} catch (IllegalStateException e) {
Log.e("ViewScreenSaver", "Error stopping video", e);
}
}else {
//图片
if(TYPE_UPDATE_VIDE==TYPE_UPDATE_VIDEO0){

3
app/src/main/java/qianmu/container/app/Constant.java

@ -73,13 +73,10 @@ public class Constant {
public static final String ACTION_MEDIA_UPDATE_COMPLETE = "action_media_complete"; // U盘更新完成
public static final String INPUT_PASSWORD = "input_password"; //
public static final String ACTION_CONNECT_WEB_SOCKET = "action_connect_web_socket"; //
public static final String ACTION_CLOSE_WEB_SOCKET = "action_close_web_socket";
public static final String ACTION_CONNECT_LOCAL_SOCKET = "action_connect_local_web_socket"; //
public static final String ACTION_CLOSE_LOCAL_SOCKET = "action_close_local_web_socket";
public static final String ACTION_START_SOCKET_SERVER = "action_start_socket_server";
public static final String ACTION_STOP_SOCKET_SERVER = "action_stop_socket_server";
public static final String ACTION_NETWORK = "action_network";// 网络通知
public static final String ACTION_MQTT_STATE = "action_mqtt_state";// 通知mqtt检测连接状态,如果断开进行重连
public static final String ACTION_MQTT_ALIVE = "action_mqtt_alive";// 通知mqtt检测连接状态,如果断开进行重连
public static final String ACTION_SHOW_UPDATE_H5 = "action_show_update_h5";// H5更新完成,通知页面更新

Loading…
Cancel
Save