2013-01-08 19 views
5

Stworzyliśmy lampkę powiadomienia zewnętrznego iOS, która wykorzystuje dźwięk urządzenia do zasilania. Po nawiązaniu połączenia telefonicznego na telefonie iPhone i włączeniu światła nadal odbierany jest dzwonek, ale po podniesieniu słuchawki dźwięk jest przekierowywany do słuchawek (iPhone myśli, że nasze światło/urządzenie to zestaw słuchawkowy), a użytkownik musi wyodrębnić myLED przez co najmniej 2 mm, aby uzyskać dźwięk z przedniego odbiornika telefonu.Zmiana trasy gniazda słuchawkowego iPhone'a

Szukaliśmy alternatywnych rozwiązań tego wyzwania - niedawno zrobiliśmy prototyp z konkretnym kształtem gniazda, aby mógł zostać obrócony przez użytkownika, gdy otrzymywał połączenie, aby "przekierować" dźwięk do głośnika/mikrofonu iPhone'a. Chociaż może to brzmieć sprytnie, to rozwiązanie sprzętowe jest daleka od zgrabności - prowadzi to do pozycji, w których myLED nie działa/nie jest niezawodne, oraz innych komplikacji.

Wiem o istnieniu kAudioSessionOverrideAudioRoute_Speaker, ale podejrzewam, że to doprowadzi jedynie dźwięk aplikacji do tylnego głośnika ("głośnego"), a nie do przedniego odbiornika (ponieważ "odbiornik" dla iPhone'a jest słuchawki, jeśli zostały wykryte).

Co byś zasugerował? Super doceniane!

Odpowiedz

4

myślę, że jesteś w trudnej sytuacji:

  1. Jest wysoce nieprawdopodobne, Apple będzie zawsze zwolnić opcję, aby zastąpić routing dźwięku dla połączeń telefonicznych. Jako kluczowa funkcja telefonu, mają tendencję do utrzymywania aspektu połączenia pod kluczem.

  2. Gniazdo słuchawkowe (prawdopodobnie - tak jak większość z nich to robi) wykorzystuje impedancję między masą a jednym lub obydwoma głośnikami lub pilotem, aby określić, czy wtyczka jest włączona. Poza przerwaniem obwodu, nie jest dobrym sposobem na symulację tego.

Jedynymi opcjami Chyba nie są takie:.

  1. wymagać od użytkownika, aby usunąć urządzenie, gdy przychodzi połączenie

  2. Zapewnić mikrokontrolera na gniazdo do kierowania tranzystor; ten tranzystor może elektronicznie rozerwać obwód, aby zapewnić ten sam rodzaj impedancji, co gniazdo z wtyczką.

Jak, kiedy, i czy można przekazać informacje do gniazda, że ​​telefon jest w toku jest poza moją wiedzą: czy istnieje API dla „przychodzących, ale jeszcze nie odpowiedział na wezwanie” można zaczepić do ? Czy musisz zrobić coś, aby zapewnić komunikację z Twoją aplikacją? Czy byłoby możliwe korzystanie ze złącza dokowania? Myślę, że to naprawdę twoje opcje. Nie jest to pełna odpowiedź, ale to są moje myśli.

Powiązane problemy