本文にスキップする
Version: 7.0

ビデオレシーバー

ビデオレシーバー機能を使用すると、実際のビデオストリームに影響を与えることなく、ビデオデータを取得できます。アプリケーションでは、この機能を利用してビデオデータのコピーを受け取り、さまざまな用途に使用できます。

対応する通話タイプ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は以下のとおりです。

共通

1対1通話

グループ通話