Saltar al contenido principal

Importar Audio

Resumen

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

  1. Crear un Runtime Audio Importer
  2. Vincular a los delegados necesarios (OnProgress y OnResult)
  3. Importar audio desde un archivo o buffer
  4. Reproducir el sound wave importado obtenido del delegado OnResult (más información aquí)
Nota Importante

Asegúrate de que tanto Runtime Audio Importer como las instancias de Sound Wave no sean recolectadas prematuramente por el garbage collector manteniendo una referencia fuerte a ellas, lo cual se puede hacer asignándolas a variables separadas usando UPROPERTY(), TStrongObjectPtr, o cualquier otro método que evite que el objeto sea destruido.

Formatos de Audio Soportados

Runtime Audio Importer soporta importar los siguientes formatos de audio:

FormatoDescripción
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVWaveform Audio File Format
FLACFree Lossless Audio Codec
OGG VORBISContenedor Ogg con audio Vorbis
OGG OPUSContenedor Ogg con audio Opus
BINKBink Audio
RAW (PCM)Datos de audio sin comprimir en formato Pulse-Code Modulation (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
tip

Al importar audio, puedes especificar el formato explícitamente o usar detección automática basada en la extensión del archivo o su contenido.

Importación de Audio en Streaming

Para escenarios de streaming donde los datos de audio se reciben incrementalmente (ej. desde un servidor, captura en tiempo real o streams de red), considera usar Streaming Sound Waves.

Este método proporciona una forma continua de añadir datos de audio al mismo buffer del sound wave, haciéndolo adecuado para transmisiones en vivo o archivos grandes procesados en fragmentos. Consulta la documentación de Streaming Sound Wave para más detalles.

Pasos Básicos de Implementación

1. Crear Runtime Audio Importer

Primero, necesitas crear un objeto Runtime Audio Importer. Debes asegurarte de que sea tratado como una referencia fuerte por el garbage collector.

Nodo Create Runtime Audio Importer

2. Vincular al Delegado OnProgress

Para rastrear el progreso de la importación de datos de audio, puedes vincular al delegado OnProgress (Blueprints) / OnProgressNative (C++).

Un ejemplo de vinculación al delegado On Progress

tip

Esto te permitirá monitorear el progreso y, por ejemplo, implementar una pantalla de carga.

3. Vincular al Delegado OnResult

Para ser notificado cuando el proceso de importación de datos de audio esté completo y acceder a la referencia de la onda de sonido resultante, debes vincular al delegado OnResult (Blueprints) / OnResultNative (C++).

Un ejemplo de vinculación al delegado On Result

aviso

Asegúrate de que la onda de sonido importada sea tratada como una referencia fuerte por el recolector de basura para evitar una recolección prematura no deseada. Esto se puede lograr colocándola como una variable separada en Blueprints.

4. Iniciar Importación de Audio

Comienza el proceso de importación de audio llamando a la función relevante, que puede manejar tanto formatos de audio comprimidos como no comprimidos.

Ejemplos de nodos Import Audio

Funciones de Utilidad

Búsqueda de Archivos de Audio

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

Scan Directory For Audio Files node

Ejemplo Completo

Aquí hay una implementación completa de ejemplo para importar audio:

Ejemplo completo