Safari 和录制音频 — HTML Media Capture / getUserMedia()

Safari and Recording Audio — HTML Media Capture / getUserMedia()

它看起来像 getUserMedia() is now the way to go 用于捕获用户的录音。

但是 Safari 和 iOS Safari 除外。

最初我至少计划通过利用 HTML Media Capture 规范来包含 iOS Safari。从我读过的所有内容来看,这应该是可行的。但是根据我的测试,iOS 将只提供 photo/video 选项。我尝试了以下语法但没有成功:

<input type="file" accept="audio/*;capture=microphone" />
<input type="file" accept="audio/*" capture="microphone">
<input type="file" accept="audio/*" />

不过,捕捉图像会按预期工作,允许用户使用相机:

<input type="file" accept="image/*" />

我需要更改什么才能让 iOS Safari 在需要访问麦克风时与 HTML Media Capture 一起工作?

Safari 和 iOS Safari 除了我已经尝试做的以外,还有其他可用的选项吗?

Safari iOS 6+ 支持 HTML Media Capture spec 但仅适用于视频和照片:

  • <input type="file" accept="image/*" />
  • <input type="file" accept="video/*" />

它不支持仅音频捕获,因此以下不会产生预期的结果:

  • <input type="file" accept="audio/*" />

Android 支持所有 3 个(视频、音频、图像)。

因此 Android 和 iOS 的支持情况如下:

在 iOS 10.3 上使用 Safari,还支持 capture 布尔属性。它表示直接从网络摄像头捕获是首选。使用时,选择现有视频或图像的选项将不会在 iOS 10.3+:

上的 Safari 上提供
  • <input type="file" accept="image/*" capture />

我在 https://addpipe.com/blog/correct-syntax-html-media-capture/

上写了更多关于 HTML 媒体捕获主题的文章

Safari 仍然不能正确支持 getUserMedia。 它失败了:

imgCapture = new ImageCapture(stream.getVideoTracks()[0]);

这在 Chrome 中有效,但 Safari 不知道 ImageCapture() 是什么。

更新:Safari 11.0 中的新功能 (iOS 11) – 摄像头和麦克风访问。 添加了对媒体捕获 API 的支持。 添加了网站从用户设备访问摄像头和麦克风流的功能(需要用户许可。)

https://developer.apple.com/library/archive/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_0.html