본문으로 건너뛰기
Version: 7.0

오디오 리시버

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

지원 통화 유형최소 SDK 버전
1대1 통화, 그룹 통화(컨퍼런스)PlanetKit 7.0
Note

오디오 리시버를 통해 얻은 오디오 데이터는 VQE 제어가 적용되기 전의 오디오 스트림입니다.

활용 사례

오디오 리시버의 주요 활용 사례는 다음과 같습니다.

  • 오디오 분석 및 전사(음성→텍스트 변환)
  • 음성 활동 감지(VAD)
  • 오디오 품질 모니터링
  • 통화 분석 및 지표 수집
  • 실시간 오디오 시각화 및 레벨 미터링
  • 통화 오디오를 파일로 녹음

구현 단계

오디오 리시버 기능을 구현하려면 다음 단계를 따르세요.

1대1 통화

오디오 리시버 구현

1대1 통화의 오디오 데이터 수신을 위해 ICallAudioReceiver를 상속하는 클래스를 만드세요.

#include "PlanetKit.h"
#include "IPlanetKitCallAudioReceiver.h"

class AudioDataReceiver : public PlanetKit::ICallAudioReceiver {
public:
void OnAudio(const PlanetKit::SAudioData& sAudioData) override {
// Access audio data from SAudioData structure:
// - sAudioData.unAudioDataSamplingRate: Sampling rate
// - sAudioData.unAudioDataSampleCount: Number of samples
// - sAudioData.eAudioDataSampleFormat: Sample format
// - sAudioData.ucBuffer: Pointer to audio data
// - sAudioData.unBufferSize: Size of audio data in bytes

// Use the audio data for your use case

// Note: Copy data if you need it beyond this callback
}
};

오디오 리시버 설정

오디오 데이터 수신을 시작하려면 PlanetKitCall 인스턴스에 리시버를 등록하세요.

// Create receiver instances
PlanetKit::ICallAudioReceiverPtr pMyAudioReceiver = PlanetKit::MakeSharedPtr<AudioDataReceiver>();
PlanetKit::ICallAudioReceiverPtr pPeerAudioReceiver = PlanetKit::MakeSharedPtr<AudioDataReceiver>();

// Register receivers
m_pCall->RegisterMyAudioReceiver(pMyAudioReceiver); // Local user's audio
m_pCall->RegisterPeerAudioReceiver(pPeerAudioReceiver); // Remote peer's audio

오디오 리시버 해제

오디오 데이터 수신을 중지하려면 리시버 등록을 해제하세요.

m_pCall->DeregisterMyAudioReceiver(pMyAudioReceiver);
m_pCall->DeregisterPeerAudioReceiver(pPeerAudioReceiver);

그룹 통화

오디오 리시버 구현

그룹 통화의 오디오 데이터 수신을 위해 IConferenceAudioReceiver를 상속하는 클래스를 만드세요.

#include "PlanetKit.h"
#include "IPlanetKitConferenceAudioReceiver.h"

class ConferenceAudioDataReceiver : public PlanetKit::IConferenceAudioReceiver {
public:
void OnAudio(const PlanetKit::SAudioData& sAudioData) override {
// Access audio data from SAudioData structure:
// - sAudioData.unAudioDataSamplingRate: Sampling rate
// - sAudioData.unAudioDataSampleCount: Number of samples
// - sAudioData.eAudioDataSampleFormat: Sample format
// - sAudioData.ucBuffer: Pointer to audio data
// - sAudioData.unBufferSize: Size of audio data in bytes

// Use the audio data for your use case

// Note: Copy data if you need it beyond this callback
}
};

오디오 리시버 설정

오디오 데이터 수신을 시작하려면 PlanetKitConference 인스턴스에 리시버를 등록하세요.

// Create receiver instances
PlanetKit::IConferenceAudioReceiverPtr pMyAudioReceiver = PlanetKit::MakeSharedPtr<ConferenceAudioDataReceiver>();
PlanetKit::IConferenceAudioReceiverPtr pPeerAudioReceiver = PlanetKit::MakeSharedPtr<ConferenceAudioDataReceiver>();

// Register receivers
m_pConference->RegisterMyAudioReceiver(pMyAudioReceiver); // Local user's audio
m_pConference->RegisterPeersAudioReceiver(pPeerAudioReceiver); // Mixed audio from all peers

오디오 리시버 해제

오디오 데이터 수신을 중지하려면 리시버 등록을 해제하세요.

m_pConference->DeregisterMyAudioReceiver(pMyAudioReceiver);
m_pConference->DeregisterPeersAudioReceiver(pPeerAudioReceiver);

관련 API

오디오 리시버 기능과 관련된 API는 다음과 같습니다.

1대1 통화

그룹 통화