ビデオレシーバー
ビデオレシーバー機能を使用すると、実際のビデオストリームに影響を与えることなく、ビデオデータを取得できます。アプリケーションでは、この機能を利用してビデオデータのコピーを受け取り、さまざまな用途に使用できます。
| 対応する通話タイプ | SDKの最低バージョン |
|---|---|
| 1対1通話、グループ通話(カンファレンス) | PlanetKit 7.0 |
活用事例
ビデオレシーバーの主な活用例は次のとおりです。
- ビデオ分析と品質のモニタリング
- 通話分析と指標の収集
- サムネイルの作成
実装段階
ビデオレシーバー機能を実装するには、次の手順に従います。
Note
Androidでは、ビデオレシーバーはピアからのビデオ受信のみをサポートします。
ビデオレシーバーの実装
コールバックを介してビデオデータを受信するためにPlanetKitPeerVideoReceiverインタフェースを実装するクラスを作成します。
import com.linecorp.planetkit.session.PlanetKitPeerVideoReceiver
import com.linecorp.planetkit.video.PlanetKitVideoFrameData
class VideoFrameReceiver : PlanetKitPeerVideoReceiver {
override fun onPeerVideoReceived(data: PlanetKitVideoFrameData) {
// Access video frame properties
val width = data.width // Int: frame width in pixels
val height = data.height // Int: frame height in pixels
val format = data.format // PlanetKitVideoSourceFormat: frame format
val rotation = data.rotation // PlanetKitVideoRotation: rotation angle
val timestamp = data.timestamp // Long: timestamp in nanoseconds
val buffer = data.buffer // ByteBuffer: video frame data
val size = data.size // Int: size in bytes
val isMirrored = data.isMirrored // Boolean: whether frame is horizontally flipped
// Use the video frame for your use case
// Release the frame when done
data.release()
}
}
ビデオレシーバーの設定
1対1通話またはグループ通話からピアのビデオデータを受信するには、レシーバーを登録します。
// Create receiver instance
val peerVideoReceiver = VideoFrameReceiver()
// For 1-to-1 call
call.setPeerVideoReceiver(peerVideoReceiver)
// For group call - specify which peer to receive video from
val peerUser = PlanetKitUser(peerId, peerServiceId)
conference.setPeerVideoReceiver(peerUser, peerVideoReceiver)
ビデオレシーバーの解除
ビデオデータの受信を中止してリソースを整理するには、レシーバーの登録を解除します。
// For 1-to-1 call
call.clearPeerVideoReceiver()
// For group call
val peerUser = PlanetKitUser(peerId, peerServiceId)
conference.clearPeerVideoReceiver(peerUser)
関連API
ビデオレシーバー機能とこれに関連するAPIは以下のとおりです。