Audio abspielen
Grundlegende Wiedergabe
Um eine importierte Schallwelle abzuspielen, verwenden Sie dieselben Funktionen wie für eine reguläre. Verwenden Sie beispielsweise die Funktion PlaySound2D oder Play aus einer Audiokomponente wie Sound Cue.

Wiedergabe steuern
Wiedergabezeit zurückspulen
Um die Wiedergabezeit der Schallwelle zurückzuspulen, verwenden Sie die Funktion RewindPlaybackTime.
- Blueprint
- 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);
In UE-Versionen bis 4.27 müssen Sie möglicherweise die Funktion RewindPlaybackTime vorher verwenden, wenn Sie die Wiedergabe von einem bestimmten Zeitpunkt größer als 0 starten möchten. Andernfalls wird der Sound aufgrund interner Engine-Probleme bei der Verarbeitung prozeduraler Wellen möglicherweise nicht korrekt wiedergegeben. Dieses Problem wurde in der Engine seit Version 5.0 behoben.
Wiedergabeinformationen abrufen
Um die aktuelle Wiedergabezeit der Schallwelle zu erhalten, verwenden Sie die Funktionen GetPlaybackTime oder GetPlaybackPercentage. Sie können auch die Dauer der Schallwelle mithilfe der Funktion GetDuration ermitteln.
- Blueprint
- 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();
Wiedergabestatus prüfen
Wird gerade abgespielt
Um festzustellen, ob die Schallwelle gerade abgespielt wird, kannst du die Funktion IsPlaying verwenden.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave is currently playing
bool bIsPlaying = ImportedSoundWave->IsPlaying();
Ist die Wiedergabe beendet
Um zu überprüfen, ob die Schallwelle fertig abgespielt wurde, kannst du die Funktion IsPlaybackFinished verwenden.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave has finished playback
bool bIsFinished = ImportedSoundWave->IsPlaybackFinished();
Wiedergabe stoppen
Du kannst die Wiedergabe der Schallwelle mit der Funktion StopPlayback stoppen.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
Es wird allgemein empfohlen, die Wiedergabe der Schallwelle mit externen Mitteln zu stoppen (z. B. durch Aufrufen von Stop auf der Audiokomponente), und diese Funktion nur zu verwenden, wenn keine externen Mittel verfügbar sind. Beachten Sie außerdem, dass diese Funktion nicht für die Wiedergabe aus MetaSounds funktioniert.
Ereignisbehandlung
Verfolgung des Abschlusses der Wiedergabe
Um das Ende der Audiowiedergabe zu verfolgen, binde dich an den OnAudioPlaybackFinished-Delegate.
- Blueprint
- 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);
}
};
Speicherverwaltung
Speicher freigeben
Du kannst die Audiodaten manuell mit der Funktion ReleaseMemory löschen.
- Blueprint
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
Manuelles Freigeben von Speicher wird nicht empfohlen, es sei denn, du hast spezifische Anforderungen an die Speicherverwaltung oder hast den Garbage Collector deaktiviert.
Freigeben von abgespielten Audiodaten
Um den bereits abgespielten Teil des Audiopuffers während der Wiedergabe automatisch freizugeben, konfigurieren Sie die Freigabeeinstellungen mit der Funktion SetPlayedAudioDataReleaseSettings.
- Blueprint
- 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- ob die Freigabe aktiviert ist. Standardmäßig deaktiviertReleaseCallbackFrequency- Anzahl der Audio-Generierungsanfragen (Aufrufe vonOnGeneratePCMAudio) zwischen den FreigabeprüfungenMinFramesToRelease- Mindestanzahl abgespielter Frames, die erforderlich ist, um eine Freigabe auszulösen
Wenn dies aktiviert ist, wird das Zurückspulen/Suchen vor den bereits freigegebenen Punkt eingeschränkt, da diese Audiodaten physisch freigegeben wurden und nicht mehr wiedergegeben werden können.