Saltar al contenido principal

Importar audio

El proceso de importar audio en tiempo de ejecución se puede desglosar en varios pasos:

  1. Crear un Runtime Audio Importer.
  2. Vincularse a los delegados necesarios (OnProgress y OnResult).
  3. Importar audio desde un archivo o un búfer.
  4. Reproducir la Sound Wave importada obtenida del delegado OnResult (más información aquí).

Asegúrese de que tanto Runtime Audio Importer como Sound Wave no sean recolectados por el recolector de basura antes de tiempo, manteniendo una referencia fuerte a ellos. Esto se puede lograr asignándolos a variables separadas utilizando UPROPERTY(), TStrongObjectPtr u otro método que evite que el objeto sea destruido.

Importaciones de audio en streaming

Para escenarios de transmisión donde los datos de audio se reciben de manera incremental (por ejemplo, desde un servidor, captura en tiempo real o flujos de red), considere usar Streaming Sound Waves. Este método proporciona una forma continua de agregar datos de audio al búfer de la misma Sound Wave, lo que lo hace adecuado para transmisiones en vivo o archivos grandes procesados en fragmentos. Consulte la documentación de Streaming Sound Wave para más detalles.

Formatos de audio compatibles

Runtime Audio Importer admite la importación de los siguientes formatos de audio:

  • MP3 - MPEG-1/2/2.5 Audio Layer I/II/III
  • WAV - Waveform Audio File Format
  • FLAC - Free Lossless Audio Codec
  • OGG VORBIS - Contenedor Ogg con audio Vorbis
  • OGG OPUS - Contenedor Ogg con audio Opus
  • BINK - Bink Audio
  • RAW (PCM) - Datos de audio de modulación por impulsos codificados sin comprimir (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)

Al importar audio, puede especificar el formato explícitamente o utilizar la detección automática según la extensión del archivo o su contenido.

Buscar archivos de audio

Puede escanear un directorio en busca de archivos de audio compatibles:

Nodo Scan Directory For Audio Files

Ejemplos

Primero, necesitas crear un objeto Runtime Audio Importer. Debes asegurarte de que sea tratado como una referencia fuerte por el recolector de basura, lo que se puede lograr colocándolo como una variable separada en Blueprints. Esto evita la destrucción prematura del objeto.

Crear nodo de Runtime Audio Importer


Para realizar un seguimiento del progreso de la importación de datos de audio, puedes enlazar al delegado OnProgress (Blueprints) / OnProgressNative (C++). Esto te permitirá monitorear el progreso y, por ejemplo, implementar una pantalla de carga. Para enlazar a este delegado, simplemente puedes extraer el pin de evento desde el nodo de enlace de evento.

Un ejemplo de enlace al delegado OnProgress


Para ser notificado cuando el proceso de importación de datos de audio se complete y para acceder a la referencia de la onda sonora resultante, debes vincularte al delegado OnResult (Blueprints) / OnResultNative (C++). Además, asegúrate de que la onda sonora importada sea tratada como una referencia fuerte por el recolector de basura para evitar una recolección de basura prematura no deseada. Esto se puede lograr colocándola como una variable separada en Blueprints.

Un ejemplo de vinculación al delegado On Result


Inicie el proceso de importación de audio llamando a la función correspondiente, que puede manejar formatos de datos de audio tanto comprimidos como sin comprimir.

Ejemplos de nodos de Import Audio


Una vez que el proceso de importación se completa, la onda de sonido importada resultante se puede obtener a través del delegado OnResult.

Ejemplo completo

Ejemplo completo