Kotlin
カスタムレンダラ(MyRenderer)の作成
次に、フレームデータを実際にロードしてOpenGLテクスチャに渡すカスタムレンダラを作成します。これは、反転カラーフラグメントシェーダを適用するために使用されます。
シェーダーコードは後で修正します。
- 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
}
}
- を検証してみよう。
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 でカスタムビデオレンダラーを使用してビデオストリームの白黒バージョンを表示する方法を学びます。
手順
1
はじめに2
はじめに3
新規プロジェクトの作成4
Android SDKの追加5
認証の設定6
許可を求める7
反転ビデオレンダラーの作成8
カスタムレンダラ(MyRenderer)の作成9
セッションへのストリームの公開10
カスタムレンダラーをパブリッシャー/サブスクライバーに接続する11
アプリの実行12
結論