Kotlin

キャプチャーの開始

startCapture() は次に実装する必要があるメソッドです。このメソッドはパブリッシャーがキャプチャを開始した時(例えば Session.publish(publisher)).これでキャプチャー・ループかリスナーが開始されるはずだ。ここでフレームは ImageReader.setOnImageAvailableListenerだから startCapture() は主に、キャプチャがアクティブであることを示す。

ライフサイクル:

  1. init() - 作成 ImageReader そしてバックグラウンドのスレッドを立ち上げる。その ImageReader を提供する。 Surface その VirtualDisplay にレンダリングする。
  2. createVirtualDisplay() - を作成する。 VirtualDisplay に支えられている。 ImageReaderの表面に表示される。画面のコンテンツはこのディスプレイにレンダリングされる。
  3. startCapture() - パブリッシャーが開始したときに呼び出されます。キャプチャをアクティブとしてマークします。
  4. stopCapture() - 仮想ディスプレイを解除し、メディア投影を停止し、後片付けをする。

SDKへのフレーム供給

システムが新しいフレームを VirtualDisplay, ImageReader を介して配信される。 onImageAvailable:

について provideIntArrayFrame メソッドで定義されている。 BaseVideoCapturer クラスは、パブリッシャーに整数配列のデータを送信します。

パブリッシャーがまだビデオをキャプチャしている場合、スレッドはさらに1/15秒後に再スタートし、キャプチャーはパブリッシャーに新しいビデオフレームを提供し続ける。