首页 > 解决方案 > Web Audio Api 目标 maxChannelCount 在 Linux 上始终为 2

问题描述

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

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

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

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

我尝试过了:

结果是一样的:在我的代码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

可能是什么问题?

标签: linuxelectronhtml5-audioweb-audio-api

解决方案


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

通过编辑 /etc/pulse/daemon.conf 解决了这个问题。; default-sample-channels = 2 取消注释该行并添加更多通道。


推荐阅读