오디오 재생
기본 재생
가져온 사운드 웨이브를 재생하려면 일반 사운드 웨이브와 동일한 함수를 사용하면 됩니다. 예를 들어 Sound Cue와 같은 오디오 컴포넌트에서 PlaySound2D 또는 Play 함수를 사용하세요.

재생 제어
재생 시간 되감기
사운드 웨이브의 재생 시간을 되감으려면 RewindPlaybackTime 함수를 사용하세요.
- 블루프린트
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Rewind playback time of the sound wave for 12.5 seconds
ImportedSoundWave->RewindPlaybackTime(12.5f);
UE 4.27 이하 버전에서는 0보다 큰 특정 시간부터 재생을 시작하려면 RewindPlaybackTime 함수를 먼저 사용해야 할 수 있습니다. 그렇지 않으면 엔진 내부에서 절차적 웨이브를 처리하는 문제로 인해 사운드가 올바르게 재생되지 않을 수 있습니다. 이 문제는 엔진 버전 5.0부터 해결되었습니다.
재생 정보 가져오기
사운드 웨이브의 현재 재생 시간을 얻으려면 GetPlaybackTime 또는 GetPlaybackPercentage 함수를 사용하세요. 또한 GetDuration 함수를 사용하여 사운드 웨이브의 길이를 얻을 수도 있습니다.
- 블루프린트
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Get the current playback time of the sound wave
float PlaybackTime = ImportedSoundWave->GetPlaybackTime();
// Get the current playback percentage of the sound wave
float PlaybackPercentage = ImportedSoundWave->GetPlaybackPercentage();
// Get the duration of the sound wave
float Duration = ImportedSoundWave->GetDuration();
재생 상태 확인 중
현재 재생 중입니까?
사운드 웨이브가 현재 재생 중인지 확인하려면 IsPlaying 함수를 사용할 수 있습니다.
- 블루프린트
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave is currently playing
bool bIsPlaying = ImportedSoundWave->IsPlaying();
재생이 완료되었는지
사운드 웨이브의 재생이 완료되었는지 확인하려면 IsPlaybackFinished 함수를 사용하면 됩니다.
- 블루프린트
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave has finished playback
bool bIsFinished = ImportedSoundWave->IsPlaybackFinished();
재생 중지
StopPlayback 함수를 사용하여 사운드 웨이브 재생을 중지할 수 있습니다.
- 블루프린트
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
일반적으로 외부 수단(예: 오디오 컴포넌트에서 Stop을 호출하는 방식)을 사용하여 사운드 웨이브 재생을 중지하는 것이 권장되며, 외부 수단을 사용할 수 없는 경우에 이 함수를 사용하십시오. 또한 이 함수는 MetaSounds에서의 재생에는 작동하지 않는다는 점에 유의하십시오.
이벤트 처리
재생 완료 추적
오디오 재생의 끝을 추적하려면 OnAudioPlaybackFinished 델리게이트에 바인딩하세요.
- 블루프린트
- C++

UCLASS()
class AMyAudioPlayer : public AActor
{
GENERATED_BODY()
public:
UFUNCTION()
void OnAudioFinished()
{
// Handle the end of audio playback
}
void BindAudioDelegate(UImportedSoundWave* ImportedSoundWave)
{
// Bind to the OnAudioPlaybackFinished delegate
ImportedSoundWave->OnAudioPlaybackFinished.AddDynamic(this, &AMyAudioPlayer::OnAudioFinished);
}
};
메모리 관리
메모리 해제
ReleaseMemory 함수를 사용하여 오디오 데이터를 수동으로 지울 수 있습니다.
- 블루프린트
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
특정 메모리 관리 요구 사항이 있거나 가비지 컬렉터를 비활성화한 경우가 아니라면 수동 메모리 해제는 권장되지 않습니다.
재생된 오디오 데이터 해제
재생 중 이미 재생된 오디오 버퍼 부분을 자동으로 해제하려면 SetPlayedAudioDataReleaseSettings 함수를 사용하여 해제 설정을 구성하세요.
- 블루프린트
- C++

FPlayedAudioDataReleaseSettings ReleaseSettings;
ReleaseSettings.bReleasePlayedAudioData = true;
ReleaseSettings.ReleaseCallbackFrequency = 50;
ReleaseSettings.MinFramesToRelease = 44100;
// Configure automatic release of the already-played audio data
ImportedSoundWave->SetPlayedAudioDataReleaseSettings(ReleaseSettings);
bReleasePlayedAudioData- 릴리스 활성화 여부입니다. 기본적으로 비활성화됩니다.ReleaseCallbackFrequency- 릴리스 확인 사이의 오디오 생성 요청 수(OnGeneratePCMAudio호출 횟수)입니다.MinFramesToRelease- 릴리스를 트리거하는 데 필요한 최소 재생 프레임 수입니다.
이를 활성화하면 이미 릴리스된 지점 이전으로 되감기/탐색이 제한됩니다. 해당 오디오 데이터는 물리적으로 해제되어 더 이상 재생할 수 없기 때문입니다.