Obtendo um quadro do SurfaceView

A dificuldade que estou tendo agora é tirar uma captura de tela do SurfaceView. Alguém poderia ajudar?

Minha equipe está fazendo um projeto Android em que usamos o MediaCodec para decodificar o feed de vídeo e renderizar o feed em um Surface. A atividade implementa

SurfaceHolder.Callback

Em seguida, criamos um SurfaceView e adicionamos o retorno de chamada:

mySurfaveView.getHolder().addCallback(this);

Começamos a decodificar o feed de vídeo (temos um método que decodifica)

surfaceChanged(SurfaceHolder holder, int format, int width, int height)

O vídeo funciona bem, agora eu quero tirar uma captura de tela do que é renderizado no SurfaceView. Eu tentei várias maneiras de fazer isso, mas não consegui. A seguir, é o que eu tentei:

Estou cansado de obter o cache de desenho do rootView.Tentei obter o quadro diretamente do MediaCodec.Tentei o método draw () para desenhar em uma tela.

A partir de agora, estou tentando criar um SurfaceView personalizado e substituir o método onDraw lá. No entanto, nunca criei um SurfaceView personalizado. Estou na direção certa?

Ajuda por favor. Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion