Kotlin
キャプチャーの開始
startCapture() は次に実装する必要があるメソッドです。このメソッドはパブリッシャーがキャプチャを開始した時(例えば Session.publish(publisher)).これでキャプチャー・ループかリスナーが開始されるはずだ。ここでフレームは ImageReader.setOnImageAvailableListenerだから startCapture() は主に、キャプチャがアクティブであることを示す。
override fun startCapture(): Int {
capturing = true
return 0
}
ライフサイクル:
init()- 作成ImageReaderそしてバックグラウンドのスレッドを立ち上げる。そのImageReaderを提供する。SurfaceそのVirtualDisplayにレンダリングする。createVirtualDisplay()- を作成する。VirtualDisplayに支えられている。ImageReaderの表面に表示される。画面のコンテンツはこのディスプレイにレンダリングされる。startCapture()- パブリッシャーが開始したときに呼び出されます。キャプチャをアクティブとしてマークします。stopCapture()- 仮想ディスプレイを解除し、メディア投影を停止し、後片付けをする。
SDKへのフレーム供給
システムが新しいフレームを VirtualDisplay, ImageReader を介して配信される。 onImageAvailable:
imageReader?.setOnImageAvailableListener(
{ reader ->
val image = reader.acquireLatestImage()
if (image != null) {
val planes = image.planes
provideBufferFrame(planes[0].buffer, ABGR, width, height, 0, false)
image.close()
}
},
backgroundHandler
)
について provideIntArrayFrame メソッドで定義されている。 BaseVideoCapturer クラスは、パブリッシャーに整数配列のデータを送信します。
パブリッシャーがまだビデオをキャプチャしている場合、スレッドはさらに1/15秒後に再スタートし、キャプチャーはパブリッシャーに新しいビデオフレームを提供し続ける。
画面共有
Vonage Video APIプラットフォームを使用して画面共有機能を実装する方法をご紹介します。
手順
1
はじめに2
はじめに3
新規プロジェクトの作成4
Android SDKの追加5
認証の設定6
許可を求める7
カスタムキャプチャーの実装8
キャプチャーの開始9
セッションの初期化10
アプリの実行11
結論