MediaCodec.ReleaseOutputBuffer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
ReleaseOutputBuffer(Int32, Boolean) |
バッファーが完了した場合は、この呼び出しを使用して、バッファーをコーデックに返すか、出力画面にレンダリングします。 |
ReleaseOutputBuffer(Int32, Int64) |
バッファーが完了した場合は、この呼び出しを使用してそのサーフェス タイムスタンプを更新し、コーデックに返して出力サーフェイスにレンダリングします。 |
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 を渡すと、この出力バッファーがサーフェスにレンダリングされます。
- 属性
例外
が実行中の状態でない場合は 。
コーデック エラーが発生した場合。
注釈
バッファーが完了した場合は、この呼び出しを使用して、バッファーをコーデックに返すか、出力画面にレンダリングします。 出力サーフェスを使用してコーデックを構成した場合、 を にtrue
設定render
すると、最初にその出力サーフェスにバッファーが送信されます。 サーフェスは、使用または表示されなくなったバッファーをコーデックに解放します。
出力バッファーをコーデックに解放した後、戻り値またはコールバックに応答して によって#getOutputBuffer
取得されるまで、出力バッファーを#dequeueOutputBuffer
Callback#onOutputBufferAvailable
使用することはできません。
の android.media.MediaCodec.releaseOutputBuffer(int, boolean)
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
適用対象
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
ブロックできます。 これは、ビデオの停止やシークなど、ユーザーの操作に対応する場合に重要です。 <li>同じ VSYNC でレンダリングされる に複数のバッファーが送信 android.view.Surface
されると、最後のバッファーが表示され、他のバッファーは削除されます。 <タイムスタンプ>が現在のシステム時刻に "適度に近い" 場合、android.view.Surface
li は<<>>タイムスタンプを無視し、可能な限り早くバッファーを表示します。 このモードでは、フレームはドロップされません。 <最適なパフォーマンスと品質を得るための li>は、目的のレンダリング時間の約 2 つ前の VSYNC の時間である場合に、このメソッドを呼び出します。 60Hz ディスプレイの場合、これは約 33 ミリ秒です。 </ul></td></tr></table>
出力バッファーをコーデックに解放した後、戻り値またはコールバックに応答して によって#getOutputBuffer
取得されるまで、出力バッファーを#dequeueOutputBuffer
Callback#onOutputBufferAvailable
使用することはできません。
の android.media.MediaCodec.releaseOutputBuffer(int, long)
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。