使用 HTML5 从 iPhone 录制语音

Record voice from IPhone using HTML5

提问人:Bilal Ahmed 提问时间:8/13/2014 更新时间:11/30/2019 访问量:29483

问:

我一直在开发一个移动网络应用程序,只是为了我自己的享受和研究。客户端应用程序的 HTML5/CSS 和 JavaScript 似乎一切工作得非常顺利,尽管看起来我需要第三方技术进行录音。我有一个非常好的解决方案,可以使用Flash,但是在用我的iPhone测试之后,我记得它们似乎不支持Flash,这令人失望,因为我有一个非常好的解决方案。我想在 Iphone 和 android 中使用 HTML5 录制语音。有什么办法吗?

javascript html 谷歌浏览器

评论


答:

-2赞 Nikhil Khullar 8/13/2014 #1

在 webkit 浏览器(即 iOS 中的 Chrome 和 Safari)上,您可以将 get user media api 与 . 详情可以在这里找到:html5rockswebkitGetUserMedia

评论

3赞 Olly Hodgson 8/13/2014
根据 caniuse.com/stream iOS Safari 尚不支持它。不过,您也许可以使用 HTML 媒体捕获,在同一篇文章前面提到过:.(额外的吹毛求疵:Chrome 和 Opera 不再使用 Webkit——它们不久前就分叉了,现在使用 Blink。<input type="file" accept="audio/*;capture=microphone">
0赞 Nikhil Khullar 8/13/2014
感谢您提供最新信息@OllyHodgson... :)
0赞 Bilal Ahmed 8/13/2014
你有什么完整的工作解决方案吗?我尝试过很多,但它们只能在计算机上使用,而不能在移动设备上使用。
0赞 Nikhil Khullar 8/13/2014
如上所述,移动设备似乎仍然不支持此功能......这是一个完整的工作演示,但仅供参考:webaudiodemos.appspot.com/AudioRecorder/index.html
1赞 Bilal Ahmed 8/13/2014
此链接在计算机上运行良好,但在移动设备上仍然无法正常工作。我有一个问题,麦克风访问如何在移动浏览器的 www.google.com(用于语音基础搜索)中工作?
-1赞 cracker 8/13/2014 #2

您可以使用 HTML5 WebAudio API

音频和视频捕获简介 在 HTML5 中捕获音频和视频

不错的库,用于录制带有示例录音机.js的音频

评论

0赞 Bilal Ahmed 8/14/2014
工作示例链接未打开。
0赞 cracker 8/14/2014
试试这个记录器.js链接,这很简单
0赞 Bilal Ahmed 8/14/2014
Recorder.js 在计算机上运行良好,但在移动设备上不起作用。
3赞 jolumg 9/14/2017
IPHONE的问题,这在IOS中不受支持
28赞 Olly Hodgson 8/13/2014 #3

您可以尝试 HTML Media Capture。dev.opera上的一篇文章说:

Android OS 3.0 是第一个提供 HTML 媒体捕获的平台 支持,通过其默认的 Android Webkit 浏览器。现在 HTML 媒体 捕获还支持:

  • 适用于 iOS 6+ 的 Safari 和 Chrome Mobile
  • 适用于 Android OS 3+ 的 Chrome Mobile
  • 适用于 Android OS 3+ 的 Firefox Mobile
  • Opera 16 适用于 Android OS 3+

尽管如此,他们中的一些人只是部分实现了规范或 实现较旧的 W3C 规范,使上述代码 略有不同:

<input type="file" accept="image/*" capture="camera">
<input type="file" accept="video/*" capture="camcorder">
<input type="file" accept="audio/*" capture="microphone">

它链接到一个演示页面,您可以在手机上尝试。我还找到了这个示例页面。不过,在我的快速 iOS 7 测试中,它仅适用于照片和视频。


编辑进一步阅读表明 iOS 6 和 7 实际上不支持,只有 和 .accept="audio/*"accept="image/*"accept="video/*"


更新:在iOS 8.3上的快速测试表明,这里没有任何变化:并且受支持,但不受支持。accept="image/*"accept="video/*"accept="audio/*"


更新:在iOS 10.0.2上的快速测试表明仍然不受支持,尽管看起来您现在可以从iCloud Drive或Dropbox上传音频文件。accept="audio/*"


更新:尽管它在Webkit博客文章中说了什么,但我的iPhone 10.3S上的iOS 5似乎仍然不支持。accept="audio/*"


更新:iOS 11.0.3中也是如此。我的iPhone 5S似乎仍然不支持。accept="audio/*"


更新:在iOS 12.4.3中仍然相同。我的iPhone 5S似乎不支持。accept="audio/*"

评论

3赞 Bilal Ahmed 8/14/2014
照片和视频拍摄没什么大不了的。我在使用 HTML5 仅录制音频时遇到问题。
0赞 Bilal Ahmed 8/14/2014
我怎样才能获得录音机选项,因为这个选项即将到来。dev.opera.com/articles/media-capture-in-mobile-browsers
2赞 Olly Hodgson 8/14/2014
@BilalAhmed 根据 webmonkey.com/2012/09/... 它只支持 并且这在 iOS7 中似乎没有改变:-(我能想到的最好的解决方法是让用户录制视频,上传,然后使用服务器端处理将音频从中提取出来?videoimage
2赞 Matt O'Tousa 7/18/2016 #4

这在网站上不起作用,但如果您想使用 Cordova 将您的 Web 应用程序重新制作为移动应用程序,这将允许您使用麦克风输入。需要一些 Web 音频 api 知识才能开始工作。

https://github.com/edimuj/cordova-plugin-audioinput

和 RecorderJS 来记录它的输出:

https://github.com/mattdiamond/Recorderjs

上面有人提到 RecorderJS 在移动设备上不起作用,但它确实如此,只是麦克风输入不起作用。

目前,我不知道有任何方法可以在移动设备上的浏览器中录制麦克风输入