Lire l'audio
Lecture de base
Pour lire une onde sonore importée, utilisez les mêmes fonctions que pour une onde sonore ordinaire. Par exemple, utilisez la fonction PlaySound2D ou Play d'un composant audio tel que Sound Cue.

Contrôler la lecture
Rembobinage du temps de lecture
Pour rembobiner le temps de lecture de l'onde sonore, utilisez la fonction 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);
Dans les versions d'UE jusqu'à 4.27, si vous souhaitez démarrer la lecture à partir d'un moment spécifique supérieur à 0, vous devrez peut-être utiliser la fonction RewindPlaybackTime au préalable. Sinon, le son risque de ne pas être lu correctement en raison de problèmes internes du moteur liés à la gestion des ondes procédurales. Ce problème a été résolu dans le moteur depuis la version 5.0.
Obtention des informations de lecture
Pour obtenir le temps de lecture actuel de l'onde sonore, utilisez les fonctions GetPlaybackTime ou GetPlaybackPercentage. Vous pouvez également obtenir la durée de l'onde sonore en utilisant la fonction 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();
Vérification de l'état de lecture
Est en cours de lecture
Pour déterminer si l'onde sonore est en cours de lecture, vous pouvez utiliser la fonction 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 lecture est-elle terminée
Pour vérifier si l'onde sonore a fini de jouer, vous pouvez utiliser la fonction 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();
Arrêter la lecture
Vous pouvez arrêter la lecture de l'onde sonore en utilisant la fonction StopPlayback.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
Il est généralement recommandé d'arrêter la lecture de l'onde sonore par des moyens externes (par exemple, en appelant Stop sur le composant audio) et d'utiliser cette fonction si les moyens externes ne sont pas disponibles. Notez également que cette fonction ne fonctionne pas pour la lecture depuis MetaSounds.
Gestion des événements
Suivi de la fin de la lecture
Pour suivre la fin de la lecture audio, liez-vous au délégué 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);
}
};
Gestion de la mémoire
Libération de la mémoire
Vous pouvez effacer manuellement les données audio à l'aide de la fonction ReleaseMemory.
- Blueprint
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
La libération manuelle de la mémoire n'est pas recommandée, sauf si vous avez des exigences spécifiques en matière de gestion de la mémoire ou si vous avez désactivé le garbage collector.
Libération des données audio lues
Pour libérer automatiquement la partie déjà lue du tampon audio pendant la lecture, configurez les paramètres de libération à l'aide de la fonction 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- indique si la libération est activée. Désactivée par défautReleaseCallbackFrequency- nombre de requêtes de génération audio (appels àOnGeneratePCMAudio) entre les vérifications de libérationMinFramesToRelease- nombre minimum de frames lues requis pour déclencher une libération
Activer ceci limite le retour en arrière/la recherche avant le point déjà libéré, car ces données audio sont physiquement libérées et ne peuvent plus être lues.