【问题标题】:Web Audio Api destination maxChannelCount always is 2 on LinuxWeb Audio Api 目标 maxChannelCount 在 Linux 上始终为 2
【发布时间】:2019-07-29 13:04:30
【问题描述】:

我在 Linux 上遇到了 Web Audio API 和 USB 音频接口的问题;

我在 Web Audio API 上写了一些音频播放器代码。

当我连接我的 7.1 USB 音频接口(TASCAM 16x08 - 有 8 个输出通道)并在 Windows 机器上启动我的应用程序时,一切都很好。 context.destination.maxChannelCount等于8,我可以选择输出声音的通道。

但是当我在 Linux 机器上做同样的事情时,context.destination.maxChannelCount 总是 2(立体声)。

我尝试过:

  • 创建虚拟音频多通道设备 = 结果相同 - 始终只有 2 个 maxChannelCount;
  • 设置 alsa、pulseaudio、插孔音频连接套件等...

结果是一样的:在我的代码中context.destination.maxChannelCount 始终是 2 但操作系统设置对话框检测到 8 个通道。

这是一些需要明确的代码:

var context = new (window.AudioContext || window.webkitAudioContext)();
var audio = new Audio();
var source = context.createMediaElementSource(audio);
source.connect(context.destination);
audio.src = 'audio.mp3';
audio.play();

console.log(context.destination.maxChannelCount);  //output on win:   2
                                                            on linux: 8

可能是什么问题?

【问题讨论】:

    标签: linux electron html5-audio web-audio-api


    【解决方案1】:

    您正在运行什么浏览器?浏览器负责为您提供那些可用的输出,如果它们不存在(在所有可用的浏览器中),那么我认为您不走运。我用网络音频和多个输出做了一些事情,甚至在同一个操作系统上,我从不同的浏览器得到了不同的结果。

    【讨论】:

    • 我使用电子 js - 我的浏览器是 Chromium。看起来 linux 中的 Chromium 无法检测设备通道数并将其设置为默认值 2
    • 试试看你在 linux 上的不同浏览器中得到了多少输出。我假设您的音频接口在 linux 中正常工作?就像你在操作系统的某个地方说你有 8 个输出可用?
    • 它可以是 Chromium,但也可以是其他东西。您的操作系统是否说您有 8 个输出?
    【解决方案2】:

    我在这里找到了解决方案https://ubuntuforums.org/archive/index.php/t-1072792.html

    通过编辑 /etc/pulse/daemon.conf 解决了这个问题。 ;默认样本通道 = 2 取消注释该行并添加更多频道。

    【讨论】:

    • 在我的 ~/.pulse/daemon.conf 文件中将其设置为 default-sample-channels = 6 已为我修复,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多