본문으로 건너뛰기
Version: 7.1

비디오 리시버

비디오 리시버 기능을 이용하면 실제 비디오 스트림에 영향을 주지 않고 비디오 데이터를 얻을 수 있습니다. 애플리케이션에서는 이 기능을 이용해 비디오 데이터의 복사본을 받아 다양한 용도로 사용할 수 있습니다.

지원되는 통화 유형최소 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 통화​

그룹 통화​