使用Safari和HTML5在iPhone上录制语音

Abd*_*LAN 11 javascript html5 voice-recording ios

我正在开发一个简单的Web应用程序,它只记录麦克风的声音,但我遇到了一些麻烦.

HTML5录音功能在chrome和firefox桌面或android上运行良好.但是在iPhone甚至Chrome和Firefox上使用移动浏览器时它不起作用.

我尝试了recorder.js,结果没有改变.

是否可以在safari上录制语音,或者它是safari或iOS的缺失功能?

cho*_*sia 11

据我所知,即使在最新的iOS(iOS 10)上,使用HTML5在iOS上录制语音仍然是不可能的.由于iOS上的所有浏览器都限制使用iOS上的Safari使用的UIWebView,因此iOS上的Chrome无法支持任何可用于媒体录制的API.
例如,您使用的recorder.js是基于Media Capture API构建的.如果您查看caniuse.com,您会发现iOS上不支持此API.(另请查看此处的问题).
MediaRecorder API也是一个很有前途的API,但仍然不支持 Apple的浏览器.

查看以下答案以获取更多信息.
1. 使用HTML5从iPhone录制语音
2. 在iOS上录制html5

  • Safari是新的IE. (19认同)

小智 11

从iOS11开始,Safari现在支持Media Capture API:

Safari 11.0中的新功能 - 摄像头和麦克风访问.

添加了对Media Capture API的支持.增加了网站从用户设备访问摄像头和麦克风流的功能(需要用户权限.)

苹果公告 - 截至2018年7月的断链

某人博客上的公告副本

因此recorder.js现在可以使用了.

  • 我尝试在iOS11中录制音频但是recorder.js不起作用. (2认同)

hab*_*her 8

2018年5月更新(因为所有过时的信息都很难搞清楚).

我发现这个演示证明它是可能的:https://kaliatech.github.io/web-audio-recording-tests/dist/#/test1

  • 我认为苹果成为了新的互联网浏览器。现在微软终于变得很棒并推出了 Edge... (2认同)

Vin*_*ald 7

现在可以在iOS11 for Safari上轻松实现!现在支持mediaStream API.然而,mediaRecorder API却不是.这会导致任何现有示例无效.因此,您必须通过将媒体流连接到webkitAudioContext ScriptProcessorNode并在节点的onaudioprocess事件上收集流缓冲区来实现您自己的mediaRecorder功能.然后,您可以收集iOS麦克风的流式音频数据,并根据需要进行操作,最有可能将其合并到wav文件中进行上传/下载.这适用于任何支持Media Stream API的浏览器.

两个问题:
- iOS Safari喜欢释放未在主线程上创建的任何AudioContext(点按),因此您无法在设备媒体访问接受的回调上初始化它.
- 除非输入和输出由于某种原因连接,否则scriptProccessorNode不会触发任何音频处理事件.

  • 能不能发个&| 链接到任何演示此的代码?我仍在努力获取非零长度的音频数据。 (3认同)