본문으로 건너뛰기
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 통화

그룹 통화