본문으로 건너뛰기

스트리밍 사운드 웨이브

음성 활동 감지(VAD)에 대해서는 이 페이지를 참조하세요.

스트리밍 사운드 웨이브는 재생 중에도 오디오 데이터를 동적으로 추가할 수 있는 형식의 가져온 사운드 웨이브입니다. 가져온 사운드 웨이브와 동일한 기능을 제공하며, 예를 들어 되감기, SoundCues 등에서 사용할 수 있습니다.

스트리밍 사운드 웨이브 생성

먼저 스트리밍 사운드 웨이브를 생성해야 합니다. 조기 파괴를 방지하기 위해 강한 참조로 처리해야 한다는 점에 유의하세요. (예: Blueprint에서 별도의 변수에 할당하거나 C++에서 UPROPERTY() 사용)

Create Streaming Sound Wave node

소리 파형 재생하기

그 소리 파형을 재생할 수 있습니다. 하지만 지금 할 필요는 없으며, 나중에 소리 파형 재생을 시작할 수 있습니다.

소리 파형 재생의 다양한 예

오디오 데이터 사전 할당

필요에 따라, 오디오 데이터(바이트)를 사전 할당하여 새로운 오디오 데이터가 추가될 때마다 전체 PCM 버퍼를 재할당하는 것을 피할 수 있습니다.

오디오 데이터 사전 할당 노드

오디오 데이터 추가

기존 버퍼의 끝에 오디오 데이터를 추가하려면, 오디오 데이터를 동적으로 추가할 수 있는 적절한 함수들을 사용하세요. 재생은 이러한 추가의 큐 순서를 따릅니다.

Append Audio Data node

가속된 오디오 재생 방지

종종 오디오 데이터를 스트리밍하고 동시에 재생해야 할 때, 버퍼가 너무 빠르게 채워지는 것에 의한 가속된 오디오를 방지하기 위해 재생 전에 약간의 지연을 추가해야 합니다. 일반적으로 약 0.5초의 지연이 권장됩니다.

사용 예제

마지막으로, 여러분의 구현은 다음과 같을 수 있습니다:

스트리밍 사운드 웨이브를 사용하는 예제

오디오 상태 채우기

OnPopulateAudioState 대리자는 OnPopulateAudioData와 유사하게 작동하지만 채워진 오디오 데이터를 방송하지 않습니다. 이는 채워진 오디오 데이터를 배열로 전달하지 않고도 오디오 데이터가 채워졌을 때를 추적하려는 경우 성능을 향상시킬 수 있어 유용할 수 있습니다.

오디오 상태 채우기 대리자

PCM 데이터 처리

재생 중 PCM 데이터에 실시간으로 액세스하려면 PCM 데이터 처리를 참조하십시오.