MediaProjection.Callback.OnCapturedContentResize(Int32, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Invocado imediatamente após o início da captura ou quando o tamanho da região capturada é alterado, fornecendo o dimensionamento preciso para a captura transmitida.
[Android.Runtime.Register("onCapturedContentResize", "(II)V", "GetOnCapturedContentResize_IIHandler", ApiSince=34)]
public virtual void OnCapturedContentResize(int width, int height);
[<Android.Runtime.Register("onCapturedContentResize", "(II)V", "GetOnCapturedContentResize_IIHandler", ApiSince=34)>]
abstract member OnCapturedContentResize : int * int -> unit
override this.OnCapturedContentResize : int * int -> unit
Parâmetros
- width
- Int32
A largura da região capturada, em pixels.
- height
- Int32
A altura da região capturada, em pixels.
- Atributos
Comentários
Invocado imediatamente após o início da captura ou quando o tamanho da região capturada é alterado, fornecendo o dimensionamento preciso para a captura transmitida.
A largura e a altura fornecidas, em pixels, correspondem à mesma largura e altura que seriam retornadas da android.view.WindowMetrics#getBounds() região capturada.
Se o conteúdo gravado tiver uma taxa de proporção diferente da saída ou da VirtualDisplay saída Surface, o fluxo capturado terá caixas de correio (barras pretas) ao redor do conteúdo gravado. O aplicativo pode evitar o caixa de correio em torno do conteúdo gravado atualizando o tamanho da saída e da VirtualDisplay saída Surface:
@Override
public String onCapturedContentResize(int width, int height) {
// VirtualDisplay instance from MediaProjection#createVirtualDisplay
virtualDisplay.resize(width, height, dpi);
// Create a new Surface with the updated size (depending on the application's use
// case, this may be through different APIs - see Surface documentation for
// options).
int texName; // the OpenGL texture object name
SurfaceTexture surfaceTexture = new SurfaceTexture(texName);
surfaceTexture.setDefaultBufferSize(width, height);
Surface surface = new Surface(surfaceTexture);
// Ensure the VirtualDisplay has the updated Surface to send the capture to.
virtualDisplay.setSurface(surface);
}
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.