MediaCodec.ReleaseOutputBuffer 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| ReleaseOutputBuffer(Int32, Int64) |
如果你已經完成緩衝區,可以用這個呼叫更新它的表面時間戳,然後回傳給編解碼器,在輸出表面渲染。 |
| ReleaseOutputBuffer(Int32, Boolean) |
如果你已經完成緩衝區,可以用這個呼叫將緩衝區回傳給編解碼器,或是在輸出表面渲染。 |
ReleaseOutputBuffer(Int32, Int64)
如果你已經完成緩衝區,可以用這個呼叫更新它的表面時間戳,然後回傳給編解碼器,在輸出表面渲染。
[Android.Runtime.Register("releaseOutputBuffer", "(IJ)V", "")]
public void ReleaseOutputBuffer(int index, long renderTimestampNs);
[<Android.Runtime.Register("releaseOutputBuffer", "(IJ)V", "")>]
member this.ReleaseOutputBuffer : int * int64 -> unit
參數
- index
- Int32
用戶端擁有的輸出緩衝區索引先前從呼叫回 #dequeueOutputBuffer傳。
- renderTimestampNs
- Int64
當緩衝區傳送到 Surface 時,要與此緩衝區關聯的時間戳記。
- 屬性
例外狀況
若不在執行狀態。
因為編碼錯誤。
備註
如果你已經完成緩衝區,可以用這個呼叫更新它的表面時間戳,然後回傳給編解碼器,在輸出表面渲染。 如果你在設定這個視訊編解碼器時沒有指定輸出表面,這個呼叫會直接將緩衝區回傳給編解碼器。
時間戳記可能根據目的地表面有特殊意義。
<table>tr th SurfaceView specifics</th></tr><tr><td> 如果你在 上android.view.SurfaceView渲染緩衝區,你可以用時間戳記在特定時間點(在緩衝區時間戳記的 VSYNC 處或之後)渲染緩衝區。>><< 要讓這個方法有效,時間戳記必須與當前 相當接近。System#nanoTime 目前,這個數字設定在一(1)秒內。 幾點說明:
<ul><li>緩衝區不會回到編解碼器,直到時間戳過且緩衝區不再被 android.view.Surface使用。
<LI>緩衝區是依序處理的,因此你可以封鎖後續的緩衝區,讓它們顯示在 android.view.Surface。 如果你想對使用者行動做出反應,例如停止影片或尋求,這點非常重要。
<
>如果多個緩衝區被傳送到android.view.Surface同一個 VSYNC 渲染,最後一個會顯示,其他緩衝區會被捨棄。
<如果>時間戳記為 <EM>非</EM> 「合理接近」當前系統時間,則 android.view.Surface 會忽略該時間戳,並在最早可行時間顯示緩衝區。 在此模式下不會掉幀。
<
>為了最佳效能和品質,當你比預期渲染時間還差兩個 VSYNC 時間時,就叫這個方法。 對於 60Hz 顯示器,這大約是 33 毫秒。
</ul></td></tr></table>
一旦輸出緩衝區釋放給編解碼器,必須在之後被 以回#dequeueOutputBuffer傳值或Callback#onOutputBufferAvailable回調時取#getOutputBuffer回該緩衝區為止。
Java 文件 android.media.MediaCodec.releaseOutputBuffer(int, long)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
ReleaseOutputBuffer(Int32, Boolean)
如果你已經完成緩衝區,可以用這個呼叫將緩衝區回傳給編解碼器,或是在輸出表面渲染。
[Android.Runtime.Register("releaseOutputBuffer", "(IZ)V", "")]
public void ReleaseOutputBuffer(int index, bool render);
[<Android.Runtime.Register("releaseOutputBuffer", "(IZ)V", "")>]
member this.ReleaseOutputBuffer : int * bool -> unit
參數
- index
- Int32
用戶端擁有的輸出緩衝區索引先前從呼叫回 #dequeueOutputBuffer傳。
- render
- Boolean
如果在設定編解碼器時指定了有效的表面,傳入 true 會將此輸出緩衝區渲染到該地表。
- 屬性
例外狀況
若不在執行狀態。
因為編碼錯誤。
備註
如果你已經完成緩衝區,可以用這個呼叫將緩衝區回傳給編解碼器,或是在輸出表面渲染。 如果你用輸出表面設定編解碼器,設定 render 為 會 true 先把緩衝區送到該輸出表面。 當緩衝區不再使用或顯示時,Surface 會將緩衝區釋放回編解碼器。
一旦輸出緩衝區釋放給編解碼器,必須在之後被 以回#dequeueOutputBuffer傳值或Callback#onOutputBufferAvailable回調時取#getOutputBuffer回該緩衝區為止。
Java 文件 android.media.MediaCodec.releaseOutputBuffer(int, boolean)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。