視頻流媒體播放器EasyPlayer-RTSP安卓版SurfaceTexture內存釋放問題解決

SurfaceTexture 類是在 Android 3.0 中推出的。當創建 SurfaceTexture 時,會創建一個應用是其消耗方的 BufferQueue。如果生產方將新的緩衝區加入隊列,服務器便會通過回調 (onFrameAvailable()) 獲得通知。服務器調用updateTexImage()(這會釋放先前保留的緩衝區),從隊列中獲取新的緩衝區,然後發出一些 EGL 調用,讓緩衝區可作爲外部紋理供 GLES 使用。

視頻流媒體播放器EasyPlayer-RTSP的安卓版本在使用SurfaceTexture 類時,碰到了內存釋放的難題。本文我們來分享一下怎麼釋放內存。

EasyPlayer-RTSP-Android SurfaceTexture內存釋放問題

之前爲了解決視頻流媒體播放器EasyPlayer-RTSP播放畫面可以無縫銜接的問題,在onSurfaceTextureDestroyed中保存了SurfaceTexture,但是這樣,texture就釋放不掉,導致內存泄漏。

解決問題

在SurfaceTextureListener的onSurfaceTextureDestroyed方法中,不要保存texture,退出播放後即可釋放這些內存:

678.png

視頻流媒體服務器在安防、互聯網、教育、錄播、IPTV等多個領域實現了廣泛應用,EasyPlayer是一款精煉、高效、穩定的流媒體播放器,其中EasyPlayerPro已經實現了H265編碼視頻的播放。EasyPlayer還有RTSP版本,能夠集成到各平臺進行視頻播放。

EasyPlayerJS視頻播放界面:

EasyPlayerJS.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章