Kotlin
Création d'un moteur de rendu personnalisé (MyRenderer)
Vous allez maintenant créer un moteur de rendu personnalisé qui chargera les données de l'image et les transmettra aux textures OpenGL. Il sera utilisé pour appliquer le nuanceur de fragment à couleur inversée.
Vous trouverez ci-dessous un schéma ; vous adapterez le code des shaders plus tard.
- Créer une classe kotlin MonRendu (peut être interne à InvertedColorsVideoRenderer)
Copie
static class MyRenderer implements GLSurfaceView.Renderer {
private int viewportWidth;
private int viewportHeight;
ReentrantLock frameLock = new ReentrantLock();
Frame currentFrame;
public void displayFrame(Frame frame) {
frameLock.lock();
if (currentFrame != null) {
currentFrame.destroy(); // Disposes previous frame
}
currentFrame = frame;
frameLock.unlock();
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// Initialize shaders, textures, etc.
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
GLES20.glViewport(0, 0, width, height);
viewportWidth = width;
viewportHeight = height;
}
@Override
public void onDrawFrame(GL10 gl) {
// Upload YUV frame → textures
// Draw using shaders
// Implementation of YUV → RGB shader pipeline
// using inverted color math
}
}
- Examinons les
displayFrameméthode. Il est important de noter que la trame que le sdk envoie à la méthodeRendererdans leonFrameest maintenant une propriété de la méthodeRenderer. C'est à cette classe qu'il revient de détruire le cadre lorsqu'il n'est plus nécessaire. C'est la raison pour laquelle nous détruisons le cadre précédent lorsqu'un nouveau cadre arrive dans la classeRenderer
Copie
public void displayFrame(Frame frame) {
frameLock.lock();
if (currentFrame != null) {
currentFrame.destroy(); // Disposes previous frame
}
currentFrame = frame;
frameLock.unlock();
}
Rendu vidéo de base
Apprenez à utiliser un moteur de rendu vidéo personnalisé en Kotlin pour afficher une version en noir et blanc d'un flux vidéo à l'aide du SDK Android Vonage Video.
Étapes
1
Introduction2
Pour commencer3
Création d'un nouveau projet4
Ajout du SDK Android5
Mise en place de l'authentification6
Demande d'autorisations7
Création du moteur de rendu vidéo inversé8
Création d'un moteur de rendu personnalisé (MyRenderer)9
Publication d'un flux dans la session10
Connexion d'un moteur de rendu personnalisé à un éditeur/abonné11
Exécution de l'application12
Conclusion