Safari和录制音频 - HTML媒体捕获/ getUserMedia()

时间:2017-04-26 00:39:18

标签: javascript html ios safari audio-recording

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

但是这会遗漏Safari和iOS Safari。

最初,我至少计划通过利用HTML Media Capture规范来包含iOS Safari。从我读过的所有内容来看,这是假设可行的。但是从我的测试来看,iOS只会提供照片/视频选项。我没试过以下语法:

<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可用的其他选项吗?

3 个答案:

答案 0 :(得分:4)

iOS 6+上的Safari支持HTML Media Capture spec,但仅支持视频和照片:

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

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

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

Android支持所有3种(视频,音频,图像)。

因此Android和iOS的支持如下:

enter image description here

对于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媒体捕获主题的内容

答案 1 :(得分:3)

更新:Safari 11.0(iOS 11)中的新功能 - 摄像头和麦克风访问。 添加了对Media Capture API的支持。 增加了网站从用户设备访问摄像头和麦克风流的功能(需要用户权限。)

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

答案 2 :(得分:0)

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

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

这适用于Chrome,但Safari不知道ImageCapture()是什么。