用于捕获用户的录音,看起来像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可用的其他选项吗?
答案 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的支持如下:
对于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的支持。 增加了网站从用户设备访问摄像头和麦克风流的功能(需要用户权限。)
答案 2 :(得分:0)
Safari仍然不能正确支持getUserMedia
。
它失败了:
imgCapture = new ImageCapture(stream.getVideoTracks()[0]);
这适用于Chrome,但Safari不知道ImageCapture()
是什么。