カスタム動画のレンダリング(Android)
概要
このチュートリアルでは、が使用するビデオレンダラーに軽微な変更を加えるために必要な手順を順を追って説明します。 Subscriber オブジェクト。また、同じ手法を用いて、 Publisher オブジェクトを作成します (ただし、この例ではサブスクライバ用のカスタムレンダラについてのみ説明します)。
プロジェクトの設定
このセクションのコードは、Basic-Video-Renderer-Javaプロジェクトの opentok-android-sdk-samples レポジトリにクローンする必要があります。まだの場合は、レポをローカル・ディレクトリにクローンする必要がある。コマンドラインで
git clone git@github.com:opentok/opentok-android-sdk-samples.git
を開く。 ベーシック-ビデオ-レンダラ-Java プロジェクトをAndroid Studioで実行する。
コードを詳しく見ていく
この例では、アプリはカスタムビデオレンダラーを使用して、ビデオの反転カラーバージョンを表示します。
InvertedColorsVideoRenderer を拡張したカスタムクラスです。 BaseVideoRenderer クラス(OpenTok Android SDK で定義されている)。この BaseVideoRenderer このクラスを使用すると、OpenTokのパブリッシャーまたはサブスクライバーで使用するカスタム動画レンダラーを定義できます:
subscriber = new Subscriber.Builder(this, stream)
.renderer(new InvertedColorsVideoRenderer(this))
.build();
publisher = new Publisher.Builder(MainActivity.this)
.renderer(new InvertedColorsVideoRenderer(MainActivity.this))
.build();
について InvertedColorsVideoRenderer() コンストラクタは renderer プロパティを GLSurfaceView オブジェクトを使用します。アプリはこのオブジェクトを使って、OpenGL ES 2.0を使ってビデオを表示する。この GLSurfaceView オブジェクトが MyRenderer オブジェクトがある。 MyRenderer を継承したカスタムクラスです。 GLSurfaceView.Rendererへのレンダリングに使用される。 GLSurfaceView オブジェクトがある:
public InvertedColorsVideoRenderer(Context context) {
view = new GLSurfaceView(context);
view.setEGLContextClientVersion(2);
renderer = new MyRenderer();
view.setRenderer(renderer);
view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}
について onFrame() ビデオレンダラーのメソッドは BaseVideoRenderer クラスである。その BaseVideoRenderer.onFrame() メソッドは、パブリッシャー (またはサブスクライバー) が動画レンダラーに動画フレームをレンダリングするときに呼び出されます。このメソッドは InvertedColorsVideoRenderer このメソッドの実装では、フレームの画像バッファ(YUV フレームの表現)に渡す。 displayFrame のメソッドを使用する。 MyRenderer オブジェクトを呼び出し requestRender() のメソッドを使用する。 GLSurfaceView オブジェクトがある:
@Override
public void onFrame(Frame frame) {
renderer.displayFrame(frame);
view.requestRender();
}
ビデオフレームをレンダリングするために、レンダラー・クラスはOpenGLシェーダーを使用します。このサンプルでは、シェーダーが色の反転効果を生成している。 fragmentShaderCode 文字列:
"y=1.0-1.1643*(y-0.0625);\n"
おめでとうございます!Android向け「カスタム動画レンダリング」チュートリアルを完了しました。
ここで作成したコードをさらに試したり調整したりすることもできますし、あるいは 次のステップ の下にある。
次のステップ
ここでの作業が終わったら、以下の役立つリソースを活用して、OpenTokアプリケーションの構築と機能強化を続けてください: