Назначение Web Audio Api maxChannelCount всегда равно 2 в Linux - PullRequest
0 голосов
/ 07 марта 2019

У меня проблема с Web Audio API и аудиоинтерфейсом USB в Linux;

Я написал некоторый код аудиоплеера в 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

В чем может быть проблема?

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я нашел решение здесь https://ubuntuforums.org/archive/index.php/t-1072792.html

решил его путем редактирования /etc/pulse/daemon.conf.;default-sample-channel = 2 раскомментировать строку и добавить дополнительные каналы.

0 голосов
/ 07 марта 2019

Какой браузер у вас работает? Браузер отвечает за предоставление вам этих доступных результатов, если они отсутствуют (во всех доступных браузерах), то я думаю, что вам не повезло. Я сделал кое-что с Web Audio и несколькими выходами, и даже в одной и той же ОС я получал разные результаты в разных браузерах.

...