Apple 尚未批准 Google Voice 作为应用程序,因此 Google 创建了一个网络“应用程序”。所以他们以某种方式通过浏览器访问麦克风。浏览器无法访问麦克风,所以我想知道他们(以及我)是如何做到的。
我能想到的只有PhoneGap或Titanium之类的东西。
Apple 尚未批准 Google Voice 作为应用程序,因此 Google 创建了一个网络“应用程序”。所以他们以某种方式通过浏览器访问麦克风。浏览器无法访问麦克风,所以我想知道他们(以及我)是如何做到的。
我能想到的只有PhoneGap或Titanium之类的东西。
无法从运行在 iOS 上的 Safari 中的 Web 应用程序访问麦克风或摄像头。一旦 W3C 最终确定 HTML5 可能在几年内就有可能实现,但还有很长的路要走。我相信 Google Voice 的服务器实际上会呼叫您的手机,然后音频通过您手机的语音连接运行。
如果您愿意让自己成为一个最小的原生应用程序,那么有一个解决方案可以让您将大多数事情作为一个 Web 应用程序来完成,只将原生代码用于与音频相关的内容:
将您的应用程序创建为 Web 应用程序。设计和构建一切,让它在 iPad 上的 Safari 中看起来很棒。
创建一个新的本机应用程序,它将充当您网站的外壳。它可以只是一个非常基本的 Objective-C 应用程序,其中包含一个 Web 视图。
当您的网络应用需要打开录音界面时,使其请求一个 url(通过 javascript 或通过用户单击链接),如下所示:
startaudio://whatever-variables-you-need-to-pass
在您的 Objective-C 代码中实现 UIWebView 委托函数 webView:shouldLoadRequest:。检查 Web 视图尝试加载的每个 URI 并拦截您的自定义“startaudio://”url。此时,您的应用程序将在本机 Objective-C 中调出音频界面,可能在网站视图之上。
在 Objective-C 中(可能)将录制的音频数据上传到您的服务器,然后用于[webView executeJavascript: ]
告诉浏览器音频记录器已被关闭。
希望有帮助!