linux - 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(立体声)。
我尝试过了:
- 创建虚拟音频多通道设备 = 相同的结果 - 始终只有 2 maxChannelCount;
- 设置 alsa、pulseaudio、jack 音频连接套件等...
结果是一样的:在我的代码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
可能是什么问题?
解决方案
我在这里找到了解决方案https://ubuntuforums.org/archive/index.php/t-1072792.html
通过编辑 /etc/pulse/daemon.conf 解决了这个问题。; default-sample-channels = 2 取消注释该行并添加更多通道。
推荐阅读
- reactjs - nextjs getInitialProps getDerivedStateFromProps
- api - 如何在颤动中获得估计的旅行时间和距离
- db2 - IBM.Data.DB2Types.DB2DynArray 中的 System.TypeLoadException
- java - 阿拉伯语到拉丁语转换失败?
- python - 在Django命令的单元测试中将csv文件指定为参数时如何将csv转换为mock
- javascript - 使用 javascript 将用户响应与字符串进行比较以进行测验
- azure - 是否可以在 azure 门户中将 azure 函数发布为预编译的 dll
- c++ - 浮点相等
- docker - docker BitBucket 管道中缺少语言环境 nl_NL
- javascript - Twitter OAuth API 中的 CORS 问题