前言
测试中,发现ExoPlayer+PlayerView播放部分视频出现绿条屏,最终研究了一下,解决了。记录一下,方便自己查阅。
正文
播放时出现的绿条屏(如图,忽略背景图哈,当时debug设置的设置的颜色)
回归正题。
之前学习过如果使用ExoPlayer+PlayerView进行播放多媒体,具体看《》。
这个问题主要是在于PlayerView的配置。
xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <androidx.media3.ui.PlayerView android:id="@+id/video_play_view" android:layout_width="match_parent" android:layout_gravity="center" android:layout_height="match_parent" /> </FrameLayout>
看了PlayerView源码会发现,PlayerView默认使用SurfaceView进行显示视频图像。
经过测试,发送使用SurfaceView+ExoPlayer播放部分压缩的视频,就概率出现绿条。
解决方式是配置使用使用TextureView播放即可。
PlayerView支持TextureView和SurfaceView播放,只要修改配置即可。
也就像在xml中新增如下选项即可。
app:surface_type="texture_view"
参考文章
《》
© 版权声明