Estoy diseñando una prueba de concepto simple para grabadora multipista.iOS: código de muestra para grabación y reproducción simultánea
punto de partida obvio es jugar de archivo A.caf a los auriculares durante la grabación simultánea de entrada de micrófono en el archivo B.caf
Esta pregunta - Record and play audio Simultaneously - señala que hay tres niveles en los que puedo trabajar :
- AVFoundation API (+ AVAudioPlayer AVAudioRecorder)
- audio cola API
- API Audio Unit (RemoteIO)
¿Cuál es el mejor nivel para trabajar? Obviamente, la respuesta genérica es trabajar al más alto nivel que hace el trabajo, que sería AVFoundation.
Pero estoy aceptando este trabajo de alguien que se dio por vencido debido a problemas de latencia (estaba recibiendo un retraso de 0.3 segundos entre los archivos), ¿entonces quizás necesito trabajar en un nivel inferior para evitar estos problemas?
Además, ¿de qué código fuente está disponible para trampolín? He estado mirando la muestra de SpeakHere (http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html). si no puedo encontrar algo más simple, usaré esto.
Pero, ¿alguien puede sugerir algo más simple/más? Preferiría no trabajar con código C++ si puedo evitarlo.
¿Alguien conoce algún código público que utiliza AVFoundation para hacer esto?
EDIT: AVFoundation ejemplo aquí: http://www.iphoneam.com/blog/index.php?title=using-the-iphone-to-record-audio-a-guide&more=1&c=1&tb=1&pb=1
EDITAR (2): Mucho mejor mirando uno aquí: http://www.switchonthecode.com/tutorials/create-a-basic-iphone-audio-player-with-av-foundation-framework
EDITAR (3): How do I record audio on iPhone with AVAudioRecorder?
¿Cómo lo "preparas"? ¿Puedes explicar a qué te refieres con eso, por favor? –
¿Puede proporcionar el código de muestra de esta funcionalidad? –
Lamentablemente, todavía no hay manera de hacer esto bien (al menos eso puedo encontrar). 70ms es simplemente demasiado fuera de sincronización para mí, y con la variedad de dispositivos diferentes de hoy en día, la diferencia en la desincronización es demasiado grande. En el iPhone 5s, obtengo unos 66ms, pero en el iPhone 6, obtengo unos 40ms. Me di cuenta de que esta publicación es de 2011. ¿Alguna vez encontró una mejor manera de hacerlo? – Sti