2013-01-08 2 views
5

Abbiamo creato una spia di notifica iOS esterna che utilizza l'audio del dispositivo per l'alimentazione. Quando si riceve una telefonata su iPhone e la luce è collegata, si ottiene comunque la suoneria ma quando si riprende, l'audio viene reindirizzato alle cuffie (l'iPhone pensa che la nostra luce/dispositivo sia un set di cuffie) e l'utente deve estrarre myLED per almeno 2 mm per ottenere l'audio dal ricevitore anteriore del telefono.Reincroci audio per cuffie iPhone reinstradamento

Abbiamo esplorato soluzioni alternative a questa sfida: recentemente abbiamo realizzato un prototipo con una particolare forma a jack in modo che potesse essere ruotato dall'utente quando riceveva una chiamata per "reindirizzare" l'audio all'altoparlante/microfono dell'iPhone. Anche se può sembrare un'opzione intelligente, questa soluzione hardware è lungi dall'essere pulita - questo porta ad avere posizioni in cui il myLED non funziona/non è affidabile, oltre ad altre complicazioni.

Conosco l'esistenza di kAudioSessionOverrideAudioRoute_Speaker tuttavia sospetto che questo indirizzerà l'audio dell'app solo all'altoparlante posteriore (quello "forte") e non al ricevitore anteriore (perché il "ricevitore" per l'iphone è il cuffie impostate se vengono rilevate).

Che cosa suggeriresti? Super apprezzato!

risposta

4

penso che tu sia in una posizione difficile:

  1. è altamente improbabile che Apple mai rilasciare la possibilità di sostituire il routing audio per le chiamate telefoniche. Come funzionalità chiave del telefono, tendono a mantenere l'aspetto della chiamata sotto chiave.

  2. Il jack per cuffie (probabilmente - questo è il modo in cui la maggior parte di loro lo fa) utilizza l'impedenza tra la terra e uno o entrambi i diffusori o il telecomando per determinare se la spina è inserita. Oltre a rompere il circuito, c'è non è un buon modo per simulare questo.

Le uniche opzioni Credo che bisogna sono questi:.

  1. richiedono all'utente di rimuovere il dispositivo quando arriva una chiamata

  2. Fornire un microcontrollore sul jack di guidare un transistor; questo transistor può interrompere elettronicamente il circuito per fornire lo stesso tipo di firma di impedenza di un jack scollegato.

Come, quando, e se è possibile fornire le informazioni alla presa che una telefonata è in corso va oltre la mia conoscenza: c'è un'API per "chiamata in arrivo, ma non ancora risposto" si può collegare a ? Dovrai fare qualcosa di watchdog per garantire la comunicazione con la tua app? Potrebbe essere possibile utilizzare il connettore dock? Penso che queste siano davvero le tue opzioni. Non è una risposta completa, ma quelli sono i miei pensieri.