Kotlin
Shader für die Farbinvertierung erstellen
Jetzt braucht unser Renderer einen Shader, den wir implementieren müssen
- Fügen Sie fragmentShaderCode zur Klasse MyRenderer hinzu:
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()
Um die Videobilder zu rendern, verwendet die Renderer-Klasse
OpenGLShader. In diesem Beispiel erzeugt der Shader den Effekt der invertierten Farbe, genauer gesagt wird dies durch diese Zeile erreichty = 1.0 - 1.1643 * (y - 0.0625);die sich innerhalb derfragmentShaderCodeDie vollständige Implementierung des Renderers finden Sie in der Beispielanwendung hier
Grundlegendes Video-Rendering
Erfahren Sie, wie Sie einen benutzerdefinierten Videorenderer in Kotlin verwenden, um eine Schwarz-Weiß-Version eines Videostreams mit dem Vonage Video Android SDK anzuzeigen.
Schritte
1
Einführung2
Erste Schritte3
Ein neues Projekt erstellen4
Hinzufügen des Android-SDK5
Einrichten der Authentifizierung6
Beantragung von Genehmigungen7
Erstellen des Renderers für invertierte Videos8
Erstellen eines benutzerdefinierten Renderers (MyRenderer)9
Veröffentlichen eines Streams in der Sitzung10
Verbinden des benutzerdefinierten Renderers mit Publisher/Subscriber11
Ausführen der App12
Schlussfolgerung