浏览器访问两个pulseaudio源

时间:2020-04-15 18:50:25

标签: javascript google-chrome firefox web-applications pulseaudio

我正在开发一个Web应用程序,该应用程序需要从我在Web应用程序中选择的两个不同的本地音频源接收本地音频输入。

在开发此应用程序时,一个音频输入源是网络摄像头中的立体声麦克风;另一个是从声卡输入的立体声音频线。我已将内置音频线路输入设置为PulseAudio中“音频录制”下录制的首选设备。我注意到Chrome和Firefox都从Recording用例类别中请求音频输入,pavucontrol对此进行了显示。

我使用 navigator.mediaDevices.enumerateDevices(); 标识可用的 deviceIds 。 我为每个类似于 {audio:deviceId:{exact:devId}} 的音频输入源创建两个约束,其中 devId 是保存我想要的deviceId的变量。每种情况。

我两次调用 navigator.mediaDevices.getUserMedia(constraint); ,对于每个deviceId约束一次。

当每个返回时, MediaStream 对象之一应具有 MediaStreamTrack 作为默认的音频输入源。对于下一个活动的延迟优先级源,另一个应与PulseAudio配置中指定的相同。

但是... PulseAudio将默认的音频输入源分配给这两者,而忽略了我的deviceId约束。

我无法解决出了什么问题。两种浏览器是否都不向PulseAudio请求正确的设备,或者PulseAudio将自身限制为仅提供默认的音频输入设备,直到用户摆弄pavucontrol。我的直觉是,让我失望的是PulseAudio行为。我之所以这样说,是因为我找到了Google Meet,jitsi.org也要求我通过pavucontrol调整音频输入源。因此,我怀疑这是PulseAudio问题。

因此,在我的Web应用程序中,我指定了确切的音频输入源,但是正在接收首选的音频输入源。我都想要

  • 是否存在可使PulseAudio投放指定位置的设置 设备?
  • 如果没有,是否有解决此问题的方法?
  • 此行为是否是可以针对以下情况禁用的安全功能的结果 授权用户?
  • 是否有没有设置PulseAudio的发行版 这样行吗
  • 是否有关于此问题的bugzilla或JIRA票证?

0 个答案:

没有答案
相关问题