在JavaScript的navigator.mediaDevices.getUserMedia中设置采样频率

拉吉·高科斯(Ragy Gorkos)

我目前正在尝试在内部设置采样频率navigator.mediaDevices.getUserMedia这是一个代码片段:

navigator.mediaDevices.getUserMedia({audio: {"sampleRate": {"exact": 8000}}, video: false}).then(handleSuccess).catch(e => console.log(e));

var handleSuccess = function(stream)
{
    mediaRecorder = new MediaRecorder(stream);
    mediaRecorder.start(1000); // the argument here is the duration of each audio chunk in milliseconds
    mediaRecorder.addEventListener
    ("dataavailable", event => 
        {
            blob = event.data;
            console.log(blob)
        }
    );
}

我不相信设定sampleRategetUserMedia实际的工作,因为当我用不同的检查斑点的大小sampleRate值,它永远不会改变。每个Blob始终在6000到7000的范围内。

拉吉·高科斯(Ragy Gorkos)

我发现了问题所在。sampleRate截至2018年10月6日,Firefox不支持约束。Chrome应该支持约束,但约束不起作用,我已经提交了Chromium的错误报告:https//bugs.chromium.org/ p /铬/问题/细节?id = 889851

如果您需要亲自检查一下,Mozilla已经为支持的媒体限制做了一个很好的演示:https : //mdn.mozillademos.org/en-US/docs/Web/API/Media_Streams_API/Constraints$samples/Example_Constraint_exerciser?修订号1411870

您将在顶部看到受支持的音频限制。如果您在Firefox上输入链接,则会看到该链接sampleRate未在其中列出。在Chrome上,它已列出,但是如果您{"sampleRate": 8000}在“请求的音频限制”输入框中输入并单击“应用限制”,则应该在“实际音频设置”框中看到采样率不受影响。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在iOs 13上使用Chrome 78未定义navigator.mediaDevices

未定义不是对象(评估'navigation.mediaDevices.getUserMedia')

Firefox从不解析navigator.mediaDevices.getUserMedia()

navigator.mediaDevices.enumerateDevices()在Firefox上不显示设备标签

我可以在Android / IOS Webview中使用navigator.mediaDevices.getUserMedia吗?

mediaDevices.getUserMedia无法在iOs 11中使用Safari 11(视频为黑色)

使用navigator.mediaDevices.getUserMedia录制浏览器音频

从navigator.mediaDevices.getUserMedia()获取字节流?

渐进式Web应用程序:访问navigator.mediaDevices.getUserMedia时出错?

在vuejs 2中使用MediaDevices.getUserMedia()切换相机

mediaDevices.getUserMedia,音频播放完毕后开始麦克风录制,Safari问题

2019年访问navigator.mediaDevices.getUserMedia()的方式

部署网站后,我无权访问navigator.mediaDevices。我该如何解决?

导航器MediaDevices getUserMedia notAllowedError

Google chrome DOMException:系统拒绝了navigator.mediaDevices.getUserMedia的权限

navigator.mediaDevices.enumerateDevices在iOS Safari(13.2.3)上不返回任何音频输入设备

Heroku托管页面引发错误-navigator.mediaDevices未定义

navigator.mediaDevices.enumerateDevices()返回空标签

navigator.mediaDevices仅在AngularJs Contraller中未定义

我可以使用MediaDevices.getUserMedia()连接到多个Webrtc流的音频输入设备吗?

当Zoom或MSTeams桌面客户端正在运行(打开相机)时,MediaDevices.getUserMedia在Windows上引发异常

使用 mediaDevices.getUserMedia 访问笔记本电脑上的前置摄像头

如何使用 navigator.mediaDevices.getUserMedia 降低麦克风输入音量?

为什么 navigator.mediaDevices 在本地主机和服务器中的工作方式不同?

Navigator.getUserMedia() 已弃用。如何更改为 MediaDevices.getUserMedia()

navigator.mediaDevices.getUserMedia 返回 NotReadableError:无法启动视频源

通过 MediaDevices.getUserMedia() 创建的文件是否保存在用户的浏览器中?

JS,navigator.mediaDevices.getUserMedia() 不工作

调用 navigator.mediaDevices.getUserMedia() 或删除视频轨道后请求/添加网络摄像头