Browse Source

fix: ci

master
高志龙 1 month ago
parent
commit
80ed2b9058
  1. 65
      app/src/main/java/qianmu/container/view/CustomerVideoView.java

65
app/src/main/java/qianmu/container/view/CustomerVideoView.java

@ -14,6 +14,7 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.PlaybackException;
@ -61,8 +62,18 @@ public class CustomerVideoView extends FrameLayout {
playerView = new StyledPlayerView(context);
addView(playerView);
// 2. 初始化播放器
initializePlayer();
DefaultRenderersFactory factory =
new DefaultRenderersFactory(context);
factory.setEnableDecoderFallback(true);
player = new SimpleExoPlayer.Builder(context, factory)
.setTrackSelector(new DefaultTrackSelector(context))
.build();
player.setPlayWhenReady(false);
// 设置播放器到 PlayerView
playerView.setPlayer(player);
setupPlayerListeners();
// 默认设置(可以根据需要调整)
playerView.setUseController(false);
// 透明设置
playerView.setBackgroundColor(Color.TRANSPARENT);
playerView.setShutterBackgroundColor(Color.TRANSPARENT);
@ -70,56 +81,6 @@ public class CustomerVideoView extends FrameLayout {
playerView.setDefaultArtwork(null);
// 增加拉伸铺满
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);
replaceSurfaceWithTextureView();
}
/**
* 安全替换 SurfaceView TextureView
*/
private void replaceSurfaceWithTextureView() {
if (playerView == null) return;
// 延迟获取,确保 View 已创建
playerView.post(() -> {
View videoView = playerView.getVideoSurfaceView();
if (!(videoView instanceof SurfaceView)) return;
SurfaceView oldSurface = (SurfaceView) videoView;
ViewGroup parent = (ViewGroup) oldSurface.getParent();
if (parent == null) return;
// 创建 TextureView
mTextureView = new TextureView(getContext());
mTextureView.setLayoutParams(oldSurface.getLayoutParams());
// 替换
int index = parent.indexOfChild(oldSurface);
parent.removeView(oldSurface);
parent.addView(mTextureView, index);
// 绑定到播放器
if (player != null) {
player.setVideoTextureView(mTextureView);
}
});
}
private void initializePlayer() {
// 创建 ExoPlayer 实例
player = new SimpleExoPlayer.Builder(getContext())
.setTrackSelector(new DefaultTrackSelector(getContext()))
.build();
player.setPlayWhenReady(false);
// 设置播放器到 PlayerView
playerView.setPlayer(player);
setupPlayerListeners();
// 拉伸铺满
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);
// 默认设置(可以根据需要调整)
playerView.setUseController(false);
// 默认设置 Surface 在底部
// setZOrderOnTop(false);
//setZOrderMediaOverlay(false);
}
private void setupPlayerListeners() {

Loading…
Cancel
Save