Kotlin

カスタムレンダラ(MyRenderer)の作成

次に、フレームデータを実際にロードしてOpenGLテクスチャに渡すカスタムレンダラを作成します。これは、反転カラーフラグメントシェーダを適用するために使用されます。

シェーダーコードは後で修正します。

  1. kotlinクラスを作成する マイレンダラー (InvertedColorsVideoRendererの内部でもかまいません)
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
    }
}
  1. を検証してみよう。 displayFrame メソッドを使用する。ここで重要なのは、SDKが Renderer での onFrame メソッドのプロパティとなった。 Renderer.不要になったフレームを破棄するのはこのクラス次第だ。新しいフレームが Renderer
public void displayFrame(Frame frame) {
    frameLock.lock();

    if (currentFrame != null) {
        currentFrame.destroy(); // Disposes previous frame
    }
    
    currentFrame = frame;
    frameLock.unlock();
}

基本的なビデオレンダリング

Vonage Video Android SDK を使用して、Kotlin でカスタムビデオレンダラーを使用してビデオストリームの白黒バージョンを表示する方法を学びます。

以下の言語で利用可能:
Kotlin Swift
手順
1
はじめに
2
はじめに
3
新規プロジェクトの作成
4
Android SDKの追加
5
認証の設定
6
許可を求める
7
反転ビデオレンダラーの作成
8
カスタムレンダラ(MyRenderer)の作成
9
セッションへのストリームの公開
10
カスタムレンダラーをパブリッシャー/サブスクライバーに接続する
11
アプリの実行
12
結論