切换surface之后 释放老解码器,创建新解码器
参数name是解码器名称,例如某个设备厂商的硬件解码器。
- 返回
false:条件允许时,直接通过setOutputSurface()把现有解码器切到新画面窗口,继续复用它。 - 返回
true:避开直接切换,改为释放旧解码器,再初始化新解码器。
因为部分设备的解码器直接切换 Surface 会黑屏、卡住,所以 Media3 提供了这个判断方法。
override fun codecNeedsSetOutputSurfaceWorkaround(name: String): Boolean { return recreateDecoderOnSurfaceChange || super.codecNeedsSetOutputSurfaceWorkaround(name) }