Idioma

MediaCodec.ReleaseOutputBuffer Método

Definição

Sobrecargas

Nome Description
ReleaseOutputBuffer(Int32, Int64)

Se terminar de usar um buffer, use essa chamada para atualizar o carimbo de data/hora da superfície e devolvê-lo ao codec para renderizá-lo na superfície de saída.

ReleaseOutputBuffer(Int32, Boolean)

Se terminar com um buffer, use essa chamada para retornar o buffer para o codec ou para renderizá-lo na superfície de saída.

ReleaseOutputBuffer(Int32, Int64)

Se terminar de usar um buffer, use essa chamada para atualizar o carimbo de data/hora da superfície e devolvê-lo ao codec para renderizá-lo na superfície de saída.

[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

Parâmetros

index
Int32

O índice de um buffer de saída de propriedade do cliente retornado anteriormente de uma chamada para #dequeueOutputBuffer.

renderTimestampNs
Int64

O carimbo de data/hora a ser associado a esse buffer quando ele é enviado para o Surface.

Atributos

Exceções

se não estiver no estado em execução.

após o erro codec.

Comentários

Se terminar de usar um buffer, use essa chamada para atualizar o carimbo de data/hora da superfície e devolvê-lo ao codec para renderizá-lo na superfície de saída. Se você não tiver especificado uma superfície de saída ao configurar esse codec de vídeo, essa chamada simplesmente retornará o buffer para o codec.

O carimbo de data/hora pode ter um significado especial dependendo da superfície de destino.

<table>tr th SurfaceView specifics</th></tr<>tr td><> If you render your buffer on aandroid.view.SurfaceView, you can use the timestamp to renderize the buffer at a specific time (at the VSYNC at or after the buffer timestamp).>><< Para que isso funcione, o carimbo de data/hora precisa estar razoavelmente próximo do atual System#nanoTime. Atualmente, isso é definido como dentro de um (1) segundo. Algumas notas:

<ul><li>o buffer não será retornado para o codec até que o carimbo de data/hora tenha passado e o buffer não seja mais usado pelo android.view.Surface. <os buffers li>são processados sequencialmente, portanto, você pode bloquear buffers subsequentes a serem exibidos no android.view.Surface. Isso é importante se você quiser reagir à ação do usuário, por exemplo, parar o vídeo ou procurar. <li>se vários buffers forem enviados para o android.view.Surface que será renderizado no mesmo VSYNC, o último será mostrado e os outros serão descartados. <li>se o carimbo de data/hora não< estiver <>">razoavelmente próximo" da hora atual do sistema, o android.view.Surface carimbo de data/hora será ignorado e exibirá o buffer no momento mais cedo possível. Nesse modo, ele não removerá quadros. <li>para obter o melhor desempenho e qualidade, chame esse método quando você tiver cerca de dois VSYNCs antes do tempo de renderização desejado. Para exibições de 60Hz, isso é cerca de 33 msec. </ul></td></tr></table>

Depois que um buffer de saída é liberado para o codec, ele NÃO DEVE ser usado até que seja recuperado posteriormente #getOutputBuffer em resposta a um #dequeueOutputBuffer valor retornado ou um Callback#onOutputBufferAvailable retorno de chamada.

Java documentação para android.media.MediaCodec.releaseOutputBuffer(int, long).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

ReleaseOutputBuffer(Int32, Boolean)

Se terminar com um buffer, use essa chamada para retornar o buffer para o codec ou para renderizá-lo na superfície de saída.

[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

Parâmetros

index
Int32

O índice de um buffer de saída de propriedade do cliente retornado anteriormente de uma chamada para #dequeueOutputBuffer.

render
Boolean

Se uma superfície válida foi especificada ao configurar o codec, passar true renderiza esse buffer de saída para a superfície.

Atributos

Exceções

se não estiver no estado em execução.

após o erro codec.

Comentários

Se terminar com um buffer, use essa chamada para retornar o buffer para o codec ou para renderizá-lo na superfície de saída. Se você configurou o codec com uma superfície de saída, a configuração render para true enviará primeiro o buffer para essa superfície de saída. A superfície liberará o buffer de volta para o codec depois que ele não for mais usado/exibido.

Depois que um buffer de saída é liberado para o codec, ele NÃO DEVE ser usado até que seja recuperado posteriormente #getOutputBuffer em resposta a um #dequeueOutputBuffer valor retornado ou um Callback#onOutputBufferAvailable retorno de chamada.

Java documentação para android.media.MediaCodec.releaseOutputBuffer(int, boolean).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a