커스텀 비디오 소스
기본적으로 PlanetKit은 영상 통화 시작 시 카메라 장치를 자동으로 감지하여 제어하며, 카메라에서 캡처한 비디오를 영상 통화에 사용합니다. 하지만 애플리케이션의 요구사항에 따라 이를 변경해야 할 필요가 있을 수 있습니다. 사용자의 비디오 대신 외부 소스에서 가져온 비디오를 화면에 보여주는 것이 한 가지 예입니다.
이러한 요구를 충족할 수 있도록 PlanetKit은 원하는 비디오 프레임을 직접 공급할 수 있는 커스텀 비디오 소스(custom video source) 기능을 제공합니다. 이 기능을 통해 사용자가 원하는 비디오 프레임을 직접 PlanetKit 모듈에 렌더링하고 상대방에게 전달할 수 있습니다.
Note
커스텀 비디오 소스를 사용하는 동안은 PlanetKit이 카메라 장치를 제어하지 않습니다.
지원 통화 유형 | 최소 SDK 버전 |
---|---|
1대1 통화, 그룹 통화(컨퍼런스) | PlanetKit 5.5 |
구현 절차
커스텀 비디오 소스 기능을 구현하는 절차는 다음과 같습니다.
커스텀 비디오 소스 클래스 구현하기
PlanetKitCustomCamera
를 상속 받는 클래스를 만들고 메서드를 구현하세요.
import PlanetKit
class CustomCamera: PlanetKitCustomCamera {
static var shared = CustomCamera()
// Implement the abstract method to handle FPS limit updates
override func processFpsLimitUpdate(enabled: Bool, fps: Int32) {
// Handle the FPS limit update
// If `enabled` is true, adjust your frame generation logic to according to the `fps`
}
// Method to simulate video buffer processing
func processVideoBuffer(buffer: CMSampleBuffer) {
guard let targetBuffer = PlanetKitVideoBuffer.getPreferredSampleBuffer(buffer) else {
return
}
let timestamp = CMSampleBufferGetPresentationTimeStamp(targetBuffer)
// Check if video buffer can be sent. If false, drop the buffer.
guard isVideoSendAvailable(timestamp: timestamp) else { return }
let videoBuffer = PlanetKitVideoBuffer(sampleBuffer: targetBuffer,
timestamp: timestamp,
rotation: .rotation0,
position: .unknown,
sender: nil,
source: .camera)
sendVideo(videoBuffer: videoBuffer)
}
}
커스텀 비디오 소스 사용하기
커스텀 비디오 소스를 사용하려면 구현한 커스텀 비디오 소스 객체를 인자로 PlanetKitCameraManager
의 setCustomCamera()
를 호출하세요.
PlanetKitCameraManager.shared.setCustomCamera(CustomCamera.shared)
커스텀 비디오 소스를 카메라로 되돌려 놓기
커스텀 비디오 소스를 카메라로 되돌려 놓으려면 PlanetKitCameraManager
의 resetToDefaultCamera()
를 호출하세요.
PlanetKitCameraManager.shared.resetToDefaultCamera()
관련 API
커스텀 비디오 소스 기능과 관련된 API는 다음과 같습니다.
-
PlanetKitCustomCamera
iOS, macOS -
PlanetKitCameraManager
의setCustomCamera()
iOS, macOS -
PlanetKitCameraManager
의resetToDefaultCamera()
iOS, macOS
활용 예시
아래와 같은 애플리케이션 요구사항이 있을 때 커스텀 비디오 소스를 활용하여 구현할 수 있습니다.
- 영상 파일을 비디오 소스로 사용하고자 할 때
- 라이브 이원 생중계나 웹 스트리밍을 받아서 비디오 소스로 사용하고자 할 때
- 카메라 장치에 대한 제어를 PlanetKit에서 하지 않고 애플리케이션에서 직접 하고 싶을 때