|
|
@ -63,12 +63,10 @@ public class CustomerVideoView extends FrameLayout { |
|
|
private void init(Context context) { |
|
|
private void init(Context context) { |
|
|
// 1. 创建 StyledPlayerView —— 从XML inflate以启用 surface_type=texture_view
|
|
|
// 1. 创建 StyledPlayerView —— 从XML inflate以启用 surface_type=texture_view
|
|
|
// (用TextureView替代默认SurfaceView,避免多路视频同播时争抢硬件overlay平面导致黑屏)
|
|
|
// (用TextureView替代默认SurfaceView,避免多路视频同播时争抢硬件overlay平面导致黑屏)
|
|
|
playerView = (StyledPlayerView) LayoutInflater.from(context) |
|
|
|
|
|
.inflate(R.layout.view_exo_texture_player, this, false); |
|
|
|
|
|
|
|
|
playerView = (StyledPlayerView) LayoutInflater.from(context).inflate(R.layout.view_exo_texture_player, this, false); |
|
|
addView(playerView); |
|
|
addView(playerView); |
|
|
// 2. 初始化播放器
|
|
|
// 2. 初始化播放器
|
|
|
DefaultRenderersFactory factory = |
|
|
|
|
|
new DefaultRenderersFactory(context); |
|
|
|
|
|
|
|
|
DefaultRenderersFactory factory = new DefaultRenderersFactory(context); |
|
|
factory.setEnableDecoderFallback(true); |
|
|
factory.setEnableDecoderFallback(true); |
|
|
player = new SimpleExoPlayer.Builder(context, factory) |
|
|
player = new SimpleExoPlayer.Builder(context, factory) |
|
|
.setTrackSelector(new DefaultTrackSelector(context)) |
|
|
.setTrackSelector(new DefaultTrackSelector(context)) |
|
|
|