Reproducir audio
Reproducción básica
Para reproducir una onda de sonido importada, utiliza las mismas funciones que usarías para una normal. Por ejemplo, usa la función PlaySound2D o Play desde un componente de audio como Sound Cue.

Control de reproducción
Rebobinado del tiempo de reproducción
Para rebobinar el tiempo de reproducción de la onda de sonido, utiliza la función 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);
En versiones de UE hasta la 4.27, si deseas iniciar la reproducción desde un tiempo específico mayor que 0, es posible que necesites usar la función RewindPlaybackTime de antemano. De lo contrario, el sonido podría no reproducirse correctamente debido a problemas internos del motor al manejar ondas procedurales. Este problema se ha resuelto en el motor desde la versión 5.0.
Obtener información de reproducción
Para obtener el tiempo de reproducción actual de la onda de sonido, utiliza las funciones GetPlaybackTime o GetPlaybackPercentage. También puedes obtener la duración de la onda de sonido utilizando la función GetDuration.
- 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();
Comprobando el estado de reproducción
¿Se está reproduciendo actualmente?
Para determinar si la onda de sonido se está reproduciendo actualmente, puedes usar la función IsPlaying.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave is currently playing
bool bIsPlaying = ImportedSoundWave->IsPlaying();
¿Ha terminado la reproducción?
Para comprobar si la onda de sonido ha terminado de reproducirse, puedes usar la función IsPlaybackFinished.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave has finished playback
bool bIsFinished = ImportedSoundWave->IsPlaybackFinished();
Detener la reproducción
Puedes detener la reproducción de la onda de sonido usando la función StopPlayback.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
Generalmente se recomienda detener la reproducción de la onda de sonido utilizando medios externos (por ejemplo, llamando a Stop en el componente de audio) y usar esta función si los medios externos no están disponibles. Además, ten en cuenta que esta función no funciona para la reproducción desde MetaSounds.
Manejo de eventos
Seguimiento de la finalización de la reproducción
Para rastrear el final de la reproducción de audio, vincúlate al delegado OnAudioPlaybackFinished.
- 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);
}
};
Gestión de memoria
Liberar memoria
Puedes borrar manualmente los datos de audio usando la función ReleaseMemory.
- Blueprint
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
No se recomienda la liberación manual de memoria a menos que tenga requisitos específicos de gestión de memoria o haya desactivado el recolector de basura.
Liberar datos de audio reproducidos
Para liberar automáticamente la parte ya reproducida del búfer de audio durante la reproducción, configure los ajustes de liberación utilizando la función 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- si la liberación está habilitada. Deshabilitada por defectoReleaseCallbackFrequency- número de solicitudes de generación de audio (llamadas aOnGeneratePCMAudio) entre comprobaciones de liberaciónMinFramesToRelease- número mínimo de fotogramas reproducidos necesarios para activar una liberación
Habilitar esto limita el rebobinado/búsqueda antes del punto ya liberado, ya que esos datos de audio se liberan físicamente y ya no se pueden reproducir.