2011-05-29 20 views
20

¿Qué debo hacer para transmitir audio DESDE un dispositivo iOS a otro dispositivo como una Mac u otro dispositivo iOS? Solo puedo encontrar soluciones como AirPlay en Google y nada sobre cómo hacerlo en tu propia aplicación. Asumiría que tendrías que pasar por un servidor de algún tipo.Transmitir audio desde iOS

Para que quede claro, no estoy buscando replicar AirPlay. Estoy buscando hacer VoIP muy básico.

+1

Una gran pregunta. – Moshe

+0

Sí, eso es muy cierto. Sorprendentemente, las API que Apple escribió en el software de iOS le permiten usar el dispositivo iOS como un servidor AirPlay (remitente) que envía datos al cliente de AirPlay (recvr) que le permite hacer lo que acaba de decir. Así que podría licenciar la tecnología AirPlay para usted mismo, o podría duplicar la funcionalidad de la tecnología iOS AirPlay, y convencer al iOS de ... Creo que ya ve dónde voy. ¿Que estás tratando de hacer? ¿No todos los dispositivos iOS tienen un puerto para auriculares? ¿No están todos destinados al consumo de medios personales? – jcolebrand

Respuesta

0

Usted dice que usted no desea utilizar AirPlay. Siguiendo con eso, deberá ejecutar su propio servidor en el dispositivo iOS. Esto es ciertamente posible, y hay aplicaciones que ejecutan varios servidores para varias tareas. Sin embargo, no estoy muy familiarizado con el tema, y ​​parece que tiene razón en que no hay mucha información en línea.

Dicho esto, me gustaría sugerir echar un vistazo a Darwin Streaming Server. Parece que es un poco viejo, pero es de código abierto y podría ser útil para ti.

2
caso de uso

VOIP crudo:

Paso 1. grabar audio con Fundación AV utilizando un codificador de compresión
Paso 2. paquetes del tren a otro dispositivo (es decir, RTP)
Paso 3. Decode & reproducir los paquetes de audio en el dispositivo remoto

Más VOIP compleja utiliza caso, los usuarios descubrir, el establecimiento de conexiones.

Estos enlaces podrían empezar

http://developer.apple.com/library/ios/#DOCUMENTATION/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html

http://en.wikipedia.org/wiki/Real-time_Transport_Protocol

3

EDITAR - 12 Ago, 2011

no me di cuenta que quería ir de dispositivo a dispositivo con el audio Siempre puede usar CFNetwork y simplemente conectarlo a un dispositivo. El truco va a ser detectarlo. Mire también los servicios bonjour. Aún necesitará usar AudioToolbox para procesar el audio en búferes y a través de Bonjour o un zócalo.

Fin de edición

@ Greg AVFoundation le da cosas como AVAudioRecorder, pero no acaba de dejar que permite transmitir los paquetes que él quiere.

Echaré un vistazo a AudioToolbox. Si usa un AudioQueue, puede especificar un formato para la transmisión. Luego, agregue una devolución de llamada en la cola de entrada y obtendrá acceso a los paquetes sin procesar del audio grabado.

Eche un vistazo a iLBC para obtener un códec. Tiene una huella suficientemente pequeña para permitirte hacer todo más de 3g.

Aquí es una gran referencia manzana en la programación AudioQueue: http://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/AudioQueueProgrammingGuide/AQRecord/RecordingAudio.html

Buena suerte!

0

Creo que un buen comienzo sería comprender el ejemplo anterior para CoreAudio: SpeakHere (registra y reproduce sonidos utilizando API C de bajo nivel.CoreAudio es uno de los ascendientes de AVFoundation)

Como @DexterW dijo que tendrá conocimiento de AudioQueue, etc.

Después de que se puede empezar a pensar en los servidores/paquetes para transmitir a :)

Espero eso ayude.

0

que lo haría exactamente como esta:

https://drive.google.com/open?id=1tKgVl0X92SYvgpvbljRzilXNQ6iBcjqM

Ejecutar esta aplicación en dos dispositivos IOS; automáticamente conectará ambos dispositivos a su red y para comenzar a transmitir audio entre ellos.

La interfaz consiste en un único componente de IU, específicamente, un campo de texto en el que se registran los eventos de la aplicación. Facilitará la comprensión de la arquitectura de la aplicación.

enter image description here

necesita la última versión beta de iOS Xcode 9 y 11.

Déjeme saber si usted tiene alguna pregunta.

Cuestiones relacionadas