在纯 JS 中的 UIWebView 中使用麦克风 API

Posted

技术标签:

【中文标题】在纯 JS 中的 UIWebView 中使用麦克风 API【英文标题】:Using Microphone API inside a UIWebView in pure JS 【发布时间】:2015-05-15 19:46:46 【问题描述】:

是否可以仅使用 JS 访问音频相关的东西?还是我需要在幕后使用本机代码,使用 UIWebView 和 Objective-c 语言来包装麦克风相关的方法?我需要的是一些简单的东西,听到声音并对接收到的信号做一些算法,但只在 UIWebView 内,仅作为 Web 应用程序。这是技术限制,还是有可能?

【问题讨论】:

【参考方案1】:

我假设您可以在 webview 中使用任何 html 5 WebAudio API:https://***.com/a/20759947/78496

【讨论】:

【参考方案2】:

随着 ios 11 支持 getUserMedia(),您现在可以在 Safari 中仅使用 JS 访问麦克风。但是,它不适用于 UIWebView、WKWebView 或 SFSafariViewController(请参阅this answer 和 this question)。

在 Safari 中,一旦获得网络摄像头/麦克风权限并且麦克风数据启动,您就可以使用 JS 库对声音进行编码,例如 Recorder.js (wav)、WebAudioRecorder.js (wav,mp3,Vorbis) 或 vmsg ( mp3)。

您还可以使用(原生)Media Recorder API 来捕获(Opus)音频 - 连同用于 Safari 11 和 Edge 的 neat polyfill - 但它仍然依赖于 getUserMedia()

【讨论】:

以上是关于在纯 JS 中的 UIWebView 中使用麦克风 API的主要内容,如果未能解决你的问题,请参考以下文章

怎么在纯js文件中设置yii方式的url地址

jquery 喜欢类选择器并在纯 js 中使用 $(this) [重复]

如何在纯 HTML/JS 中应用 Tailwind UI 动画

UIWebView中JS与OC交互 WebViewJavascriptBridge的使用

JavaScript 在纯js中获取并设置cookie

注入的 Javascript 不会覆盖 UiWebView 中的 URL