오디오 리시버
오디오 리시버 기능을 이용하면 실제 오디오 스트림에 영향을 주지 않고 오디오 데이터를 얻을 수 있습니다. 애플리케이션에서는 이 기능을 이용해 오디오 데이터의 복사본을 받아 다양한 용도로 사용할 수 있습니다.
| 지원 통화 유형 | 최소 SDK 버전 |
|---|---|
| 1대1 통화, 그룹 통화(컨퍼런스) | PlanetKit 7.0 |
Note
오디오 리시버를 통해 얻은 오디오 데이터는 VQE 제어가 적용되기 전의 오디오 스트림입니다.
활용 사례
오디오 리시버의 주요 활용 사례는 다음과 같습니다.
- 오디오 분석 및 전사(음성→텍스트 변환)
- 음성 활동 감지(VAD)
- 오디오 품질 모니터링
- 통화 분석 및 지표 수집
- 실시간 오디오 시각화 및 레벨 미터링
- 통화 오디오를 파일로 녹음
구현 단계
오디오 리시버 기능을 구현하려면 다음 단계를 따르세요.
오디오 리시버 구현
콜백을 통해 오디오 데이터를 수신하도록 PlanetKitAudioReceiver 인터페이스를 구현하는 클래스를 만드세요.
import com.linecorp.planetkit.session.PlanetKitAudioReceiver
import com.linecorp.planetkit.audio.AudioFrame
class AudioDataReceiver : PlanetKitAudioReceiver {
override fun onAudioReceived(data: AudioFrame) {
// Access audio data properties
val buffer = data.getBuffer() // ByteBuffer: audio data
val sampleType = data.getSampleType() // PlanetKitAudioSampleType: audio sample type
val size = data.getSize() // Long: size in bytes
val samplingRate = data.getSamplingRate() // PlanetKitAudioSampleRate: audio sample rate
val sampleCount = data.getSampleCount() // Int: number of samples
val timestamp = data.getTimestamp() // Long: timestamp in nanoseconds
// Use the audio data for your use case
// Release the frame when done
data.release()
}
}
오디오 리시버 설정
1대1 통화 또는 그룹 통화에서 오디오 데이터를 수신하려면 리시버를 등록하세요.
// Create receiver instance
val myAudioReceiver = AudioDataReceiver()
val peerAudioReceiver = AudioDataReceiver()
// For 1-to-1 call
call.setMyAudioReceiver(myAudioReceiver) // Local user's audio
call.setPeerAudioReceiver(peerAudioReceiver) // Remote peer's audio
// For group call
conference.setMyAudioReceiver(myAudioReceiver) // Local user's audio
conference.setPeerAudioReceiver(peerAudioReceiver) // Mixed audio from all peers
오디오 리시버 해제
오디오 데이터 수신을 중지하고 리소스를 정리하려면 리시버 등록을 해제하세요.
// For 1-to-1 call
call.clearMyAudioReceiver()
call.clearPeerAudioReceiver()
// For group call
conference.clearMyAudioReceiver()
conference.clearPeerAudioReceiver()
관련 API
오디오 리시버 기능과 관련된 API는 다음과 같습니다.
공통
1대1 통화
-
PlanetKitCall의setMyAudioReceiver() -
PlanetKitCall의setPeerAudioReceiver() -
PlanetKitCall의clearMyAudioReceiver() -
PlanetKitCall의clearPeerAudioReceiver()