Riproduci Audio
Riproduzione Base
Per riprodurre un'onda sonora importata, utilizza le stesse funzioni che useresti per una normale. Ad esempio, usa la funzione PlaySound2D
o Play
da un componente audio come Sound Cue.
Controllo della Riproduzione
Riavvolgimento del Tempo di Riproduzione
Per riavvolgere il tempo di riproduzione dell'onda sonora, utilizza la funzione 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);
Nelle versioni UE fino alla 4.27, se desideri avviare la riproduzione da un tempo specifico maggiore di 0, potrebbe essere necessario utilizzare prima la funzione RewindPlaybackTime
. Altrimenti, il suono potrebbe non riprodursi correttamente a causa di problemi interni del motore nella gestione delle onde procedurali. Questo problema è stato risolto nel motore a partire dalla versione 5.0.
Ottenere Informazioni sulla Riproduzione
Per ottenere il tempo di riproduzione corrente dell'onda sonora, utilizza le funzioni GetPlaybackTime
o GetPlaybackPercentage
. Puoi anche ottenere la durata dell'onda sonora utilizzando la funzione 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();
Verifica dello Stato di Riproduzione
Sta Attualmente Suonando
Per determinare se l'onda sonora sta attualmente suonando, puoi utilizzare la funzione 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();
La Riproduzione è Terminata
Per verificare se l'onda sonora ha terminato la riproduzione, puoi utilizzare la funzione 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();
Interrompere la Riproduzione
Puoi interrompere la riproduzione dell'onda sonora utilizzando la funzione StopPlayback
.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
Si consiglia di interrompere la riproduzione dell'onda sonora utilizzando mezzi esterni (ad esempio, chiamando Stop sul componente audio) e di utilizzare questa funzione solo se non sono disponibili mezzi esterni. Inoltre, nota che questa funzione non funziona per la riproduzione da MetaSounds.
Gestione degli Eventi
Tracciamento del Completamento della Riproduzione
Per tracciare la fine della riproduzione audio, collegati al delegato 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);
}
};
Gestione della Memoria
Rilascio della Memoria
Puoi cancellare manualmente i dati audio utilizzando la funzione ReleaseMemory
.
- Blueprint
- C++
// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
Non è consigliato liberare manualmente la memoria a meno che non si abbiano specifici requisiti di gestione della memoria o si sia disabilitato il garbage collector.