語言

MediaCodec.ReleaseOutputBuffer 方法

定義

多載

名稱 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 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於