Sprache

MediaCodec.ReleaseOutputBuffer Methode

Definition

Überlädt

Name Beschreibung
ReleaseOutputBuffer(Int32, Int64)

Wenn Sie mit einem Puffer fertig sind, verwenden Sie diesen Aufruf, um den Zeitstempel der Oberfläche zu aktualisieren und an den Codec zurückzugeben, um ihn auf der Ausgabeoberfläche zu rendern.

ReleaseOutputBuffer(Int32, Boolean)

Wenn Sie mit einem Puffer fertig sind, verwenden Sie diesen Aufruf, um den Puffer an den Codec zurückzugeben oder auf der Ausgabeoberfläche zu rendern.

ReleaseOutputBuffer(Int32, Int64)

Wenn Sie mit einem Puffer fertig sind, verwenden Sie diesen Aufruf, um den Zeitstempel der Oberfläche zu aktualisieren und an den Codec zurückzugeben, um ihn auf der Ausgabeoberfläche zu rendern.

[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

Parameter

index
Int32

Der Index eines clienteigenen Ausgabepuffers, der zuvor von einem Aufruf an #dequeueOutputBufferzurückgegeben wurde.

renderTimestampNs
Int64

Der Zeitstempel, der diesem Puffer zugeordnet werden soll, wenn er an die Surface gesendet wird.

Attribute

Ausnahmen

wenn nicht im Zustand "Ausführen" vorhanden.

bei Codecfehler.

Hinweise

Wenn Sie mit einem Puffer fertig sind, verwenden Sie diesen Aufruf, um den Zeitstempel der Oberfläche zu aktualisieren und an den Codec zurückzugeben, um ihn auf der Ausgabeoberfläche zu rendern. Wenn Sie beim Konfigurieren dieses Videocodecs keine Ausgabeoberfläche angegeben haben, gibt dieser Aufruf einfach den Puffer an den Codec zurück.

Der Zeitstempel hat je nach Zieloberfläche möglicherweise eine besondere Bedeutung.

<Table>tr th SurfaceView specifics</th></tr tr<>td><> If you render your buffer on a android.view.SurfaceView, you can use the timestamp to render the buffer at a specific time (at the VSYNC at or after the buffer timestamp).>><< Damit dies funktioniert, muss der Zeitstempel relativ nahe am aktuellen System#nanoTimesein. Derzeit wird dies innerhalb einer (1) Sekunde festgelegt. Einige Hinweise:

<ul><li>der Puffer wird erst an den Codec zurückgegeben, wenn der Zeitstempel übergeben wurde und der Puffer nicht mehr vom android.view.Surface. <Li-Puffer>werden sequenziell verarbeitet, sodass Sie nachfolgende Puffer blockieren können, die auf der android.view.Surface. Dies ist wichtig, wenn Sie auf eine Benutzeraktion reagieren möchten, z. B. das Video beenden oder suchen möchten. <li>, wenn mehrere Puffer an das android.view.Surface Gerendert an dieselbe VSYNC gesendet werden, wird die letzte angezeigt, und die anderen werden gelöscht. <li>, wenn der Zeitstempel nicht/<>em> "relativ nah" zur aktuellen Systemzeit ist<, ignoriert der android.view.Surface Zeitstempel den Zeitstempel und zeigt den Puffer möglichst früh an. In diesem Modus werden keine Frames abzulegen. <li>für optimale Leistung und Qualität, rufen Sie diese Methode auf, wenn Sie etwa zwei VSYNCs Zeit vor der gewünschten Renderzeit haben. Bei 60Hz Displays beträgt dies etwa 33 msec. </ul></td></tr></table>

Sobald ein Ausgabepuffer für den Codec freigegeben wurde, darf er ERST verwendet werden, wenn er später als #getOutputBuffer Reaktion auf einen #dequeueOutputBuffer Rückgabewert oder einen Callback#onOutputBufferAvailable Rückruf abgerufen wird.

Java Dokumentation für android.media.MediaCodec.releaseOutputBuffer(int, long).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

ReleaseOutputBuffer(Int32, Boolean)

Wenn Sie mit einem Puffer fertig sind, verwenden Sie diesen Aufruf, um den Puffer an den Codec zurückzugeben oder auf der Ausgabeoberfläche zu rendern.

[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

Parameter

index
Int32

Der Index eines clienteigenen Ausgabepuffers, der zuvor von einem Aufruf an #dequeueOutputBufferzurückgegeben wurde.

render
Boolean

Wenn beim Konfigurieren des Codec eine gültige Oberfläche angegeben wurde, rendert true diesen Ausgabepuffer an die Oberfläche.

Attribute

Ausnahmen

wenn nicht im Zustand "Ausführen" vorhanden.

bei Codecfehler.

Hinweise

Wenn Sie mit einem Puffer fertig sind, verwenden Sie diesen Aufruf, um den Puffer an den Codec zurückzugeben oder auf der Ausgabeoberfläche zu rendern. Wenn Sie den Codec mit einer Ausgabeoberfläche konfiguriert haben, sendet die Einstellung rendertrue zuerst den Puffer an diese Ausgabeoberfläche. Die Oberfläche gibt den Puffer wieder an den Codec zurück, sobald er nicht mehr verwendet/angezeigt wird.

Sobald ein Ausgabepuffer für den Codec freigegeben wurde, darf er ERST verwendet werden, wenn er später als #getOutputBuffer Reaktion auf einen #dequeueOutputBuffer Rückgabewert oder einen Callback#onOutputBufferAvailable Rückruf abgerufen wird.

Java Dokumentation für android.media.MediaCodec.releaseOutputBuffer(int, boolean).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: