Kotlin
Criação de um shader para inversão de cores
Agora, nosso renderizador precisa de um shader; vamos implementá-lo
- Adicione o fragmentShaderCode à classe MyRenderer:
Copiar
private val fragmentShaderCode = """
precision mediump float;
uniform sampler2D Ytex;
uniform sampler2D Utex;
uniform sampler2D Vtex;
varying vec2 vTextureCoord;
void main() {
float nx = vTextureCoord.x;
float ny = vTextureCoord.y;
float y = texture2D(Ytex, vec2(nx, ny)).r;
float u = texture2D(Utex, vec2(nx, ny)).r - 0.5;
float v = texture2D(Vtex, vec2(nx, ny)).r - 0.5;
// Inverted Y color
y = 1.0 - 1.1643 * (y - 0.0625);
float r = y + 1.5958 * v;
float g = y - 0.39173 * u - 0.81290 * v;
float b = y + 2.017 * u;
gl_FragColor = vec4(r, g, b, 1.0);
}
""".trimIndent()
-
Para renderizar os quadros do vídeo, a classe do renderizador utiliza
OpenGLshaders. Neste exemplo, o shader produz o efeito de cores invertidas; mais precisamente, isso é obtido por meio desta linhay = 1.0 - 1.1643 * (y - 0.0625);que fica dentro dofragmentShaderCode -
Para uma implementação completa do renderizador, consulte a implementação do aplicativo de exemplo aqui
Renderização básica de vídeo
Aprenda a usar um renderizador de vídeo personalizado em Kotlin para exibir uma versão em preto e branco de um fluxo de vídeo usando o SDK do Vonage Video para Android.
Etapas
1
Introdução2
Introdução3
Criando um novo projeto4
Adicionando o SDK do Android5
Configurando a autenticação6
Solicitação de permissões7
Criação do renderizador de vídeo invertido8
Criação de um renderizador personalizado (MyRenderer)9
Publicação de um fluxo na sessão10
Conectando o renderizador personalizado ao emissor/assistente11
Executando o aplicativo12
Conclusão