Propiedades de la onda de sonido
Puedes recuperar el búfer PCM completo de una onda de sonido directamente.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<float> PCMBuffer = ImportedSoundWave->GetPCMBufferCopy();
Si necesitas convertir los datos PCM obtenidos a bytes, consulta aquí.
Para crear un bucle de audio sin interrupciones, puedes habilitar el looping para rebobinar automáticamente el tiempo de reproducción de la onda de sonido a cero y reproducir después de que termine la reproducción.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetLooping(false);
Puedes ajustar el volumen del sonido que se está reproduciendo para adaptarlo a tus necesidades.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetVolume(1.0f);
También puedes modificar el tono del sonido que se está reproduciendo según tu preferencia.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetPitch(1.0f);
Puedes configurar subtítulos, es decir, definir el texto y el momento en que deberían mostrarse.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<FEditableSubtitleCue> Subtitles;
FEditableSubtitleCue Subtitle;
Subtitle.Text = FText::FromString("Example");
Subtitle.Time = 2.0f;
Subtitles.Add(Subtitle);
ImportedSoundWave->SetSubtitles(Subtitles);
Puedes configurar el modo de virtualización, como Play When Silent, que permite que la onda de sonido continúe reproduciéndose incluso durante el silencio. Esto es particularmente útil si estás utilizando atenuación de sonido.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetVirtualizationMode(EVirtualizationMode::PlayWhenSilent);
Si necesitas cambiar la frecuencia de muestreo o el número de canales en la onda de sonido importada, puedes utilizar las funciones adecuadas para volver a muestrear y mezclar los datos de audio. Esto modificará todos los datos de la onda de sonido y afectará la salida de los delegados OnGeneratePCMData
y OnPopulateAudioData
en consecuencia.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->ResampleSoundWave(44100);
ImportedSoundWave->MixSoundWaveChannels(2);
O, si deseas reasignar automáticamente la frecuencia de muestreo y mezclar todos los datos de audio próximos para ajustarlos a la frecuencia de muestreo deseada y al número de canales especificados, puedes usar las siguientes funciones (esto también afectará la salida de los delegados OnGeneratePCMData
y OnPopulateAudioData
en consecuencia).
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetInitialDesiredSampleRate(44100);
ImportedSoundWave->SetInitialDesiredNumOfChannels(2);