Как (можно) получить доступ к микрофону на iOS, как это делает Google Voice? - PullRequest
2 голосов
/ 29 сентября 2011

Apple не одобрила Google Voice в качестве приложения, поэтому Google создала веб-приложение.Так или иначе, они получают доступ к микрофону через браузер.Браузер не имеет доступа к микрофону, поэтому мне интересно, как они (и, следовательно, I ) сделали это.

Единственное, о чем я могу думать, это что-то вроде PhoneGap или Titanium.

1 Ответ

3 голосов
/ 13 мая 2012

Невозможно получить доступ к микрофону или камере из веб-приложения, работающего в Safari на iOS.Это может быть возможно через несколько лет после того, как W3C завершит работу над HTML5, но до этого еще далеко.Я полагаю, что серверы Google Voice на самом деле звонят на ваш телефон, а затем звук передается по голосовой связи вашего телефона.

Если вы хотите сделать себе минимальное нативное приложение, есть решение, которое позволит вам делать практически все как веб-приложение, используя нативный код только для аудиоматериалов:

  1. Создайте свое приложение как веб-приложение.Спроектируйте и создайте все, чтобы оно выглядело великолепно в Safari на iPad.

  2. Создайте новое нативное приложение, которое будет служить оболочкой для вашего сайта.Это может быть очень простое приложение Objective-C с веб-представлением.

  3. Когда вашему веб-приложению нужно открыть интерфейс аудиозаписи, сделайте так, чтобы оно запрашивало URL (черезjavascript или через пользователя, который щелкает ссылку), например:

    startaudio: // все переменные, которые вам нужны

  4. Реализация делегата UIWebViewФункция webView: shouldLoadRequest: в вашем коде Objective-C.Проверьте каждый URI, который веб-представление пытается загрузить, и перехватите ваш пользовательский URL-адрес «startaudio: //».На этом этапе ваше приложение будет отображать аудиоинтерфейс в собственном Objective-C, возможно, поверх представления веб-сайта.

  5. Загрузка записанных аудиоданных на ваш сервер в Objective-C (вероятно), а затем используйте [webView executeJavascript: ], чтобы сообщить браузеру, что аудиорекордер отключен.

Надеюсь, это поможет!

...