不能使用release(),因为我只能设置一次资源
时间: 2024-04-20 16:26:19 浏览: 42
我的SW资源,仅仅适用自己
如果你只能设置一次资源并且不能使用`release()`来释放资源,那么在切换表面时,你可以尝试以下方法来保持SurfaceView的Surface连接不被断开:
1. 在切换表面之前,先调用IjkPlayer的`setSurface(null)`方法将当前的表面置为null,以停止视频渲染。
2. 在切换到新的表面时,不要重新设置IjkPlayer的Surface,而是通过调用SurfaceHolder的`lockCanvas()`方法获取Canvas对象,然后使用Canvas来绘制一个静态的占位图,以保持Surface处于活动状态。这样可以避免重新设置Surface导致资源重新加载。
3. 在切换回原来的表面时,再通过调用IjkPlayer的`setSurface()`方法将表面重新设置给IjkPlayer,并恢复视频播放。
通过这种方式,你可以在切换表面时保持Surface的连接,并且避免重新设置资源。请注意,在切换表面后,你可能需要处理视频暂停和恢复播放的逻辑,以确保视频播放的连续性和正确性。
需要注意的是,这种方法只是一种权宜之计,并不是一个完全理想的解决方案。如果可能的话,最好通过使用`release()`释放资源并重新加载资源来实现更可靠和高效的视频切换。
阅读全文