ios - pasar - whatsapp transfer
Generando forma de onda desde cualquier archivo de música ios (3)
Estoy buscando cómo dibujar las ondas de sonido de acuerdo a la música.
Quiero olas como esta imagen.
Aquí hay una discusión sobre cómo mostrar Waves from music.
- WaveForm en iOS
- renderizar una forma de onda en un iphone
- Visualización de forma de onda de audio con iPhone
Ejemplos de enlaces de Github
- https://github.com/gyetvan-andras/cocoa-waveform
- https://github.com/benalavi/waveform
- https://github.com/JingWZ/WaveView
- https://github.com/gyetvan-andras/cocoa-waveform
- https://github.com/ioslovers/ATTabandHoldAudioRecord
- https://github.com/hezone/ECGWavesPlayer
- https://github.com/iluvcapra/JHWaveform
pero sin tener idea de este tipo de onda, ¿es posible dibujar ondas como esta imagen? ?
Yo también he intentado sinceramente durante los últimos tres meses, pero no encontré una solución. Por el momento, utilicé imágenes estáticas basadas en el tipo de canción (canciones de datos estáticos). contentOffset
las imágenes a un UIScrollView
y cambié el contentOffset
función de la posición actual del audio.
puede consultar este enlace Dibujo de forma de onda con AVAssetReader y puede hacer cambios en la generación de código de imagen.
Descargo de responsabilidad: Mucho de esto se ha descubierto a través de prueba y error, puedo tener algunas suposiciones falsas en juego aquí:
Necesitarías usar el framework AudioUnits. Al inicializar la reproducción, puede crear un AURenderCallbackStruct. Puede especificar en esta estructura una función de devolución de llamada de reproducción que le proporciona algunos argumentos que contendrán la información que necesita.
La función de devolución de llamada tendrá una firma como esta:
static OSStatus recordingCallback (void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
Aquí hay una serie de datos de audio que se pueden utilizar para obtener la amplitud del búfer de audio para cada bandeja de frecuencia, o para calcular el valor de DB de la bandeja de frecuencia.
No sé qué muestra esa gráfica, pero me parece una visualización suavizada de las amplitudes de cada uno de los contenedores de muestras.
Las Unidades de audio no son simples, pero vale la pena jugarlas por un tiempo hasta que logres un agarre.
Aquí hay un esqueleto de mi función de devolución de llamada para que tenga un mayor conocimiento de lo que quiero decir: