簡體   English   中英

視頻解碼器使用MediaCodec進行配置

[英]Video decoder Configure using MediaCodec

我正在嘗試使用MediaCodec API解碼視頻樣本。 我使用surfaceView來顯示渲染的樣本。 如果我按下主頁按鈕,應用程序進入暫停狀態並且表面被破壞。 當我回到恢復狀態時,新的surfaceView參考正在創建,但解碼器無法在surfaceView上抽樣。 因此屏幕顯示為黑色。 視頻配置:videoDecoder.configure(format,surface,null,0); 那么如何在上面的語句中重新配置videoDecoder。 它類似於以下問題如何在屏幕方向期間保持解碼活動?

MediaCodec API目前沒有(API 19)提供替換輸出Surface

正如你提到的另一個問題,我認為處理這個問題的方法是解碼到一個沒有綁定到視圖層次結構的Surface (因此,當Activity被銷毀時不會被拆除) 。

如果將MediaCodec的輸出SurfaceTextureSurfaceTexture ,則可以將該紋理渲染到SurfaceView 這將需要一些GLES代碼。 您可以在Grafika源中找到必要的部分,但目前還沒有完全實現您想要的內容(例如, PlayMovieActivity視頻解碼為SurfaceTexture ,但該ST是TextureView一部分,它將被拆除)。

額外的渲染步驟將增加GPU負載,並且不適用於受DRM保護的視頻。 對於大多數設備和應用程序,這無關緊要。

另請參閱bigflake示例

更新:我已將此添加到格拉菲卡 ,但有一個轉折點 請參閱“雙重解碼”示例。 輸出轉到與SurfaceTexture關聯的TextureView 如果旋轉屏幕(或者,當前通過按下電源按鈕消隱),則繼續解碼。 如果您使用“后退”或“主頁”按鈕退出活動,則解碼將停止。 它的工作原理是保留SurfaceTexture ,將其附加到新的TextureView

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM