Максимальное количество каналов для веб-аудио Api в Linux всегда равно 2

#linux #electron #html5-audio #web-audio-api

#linux #electron #html5-аудио #web-audio-api

Вопрос:

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

Я написал некоторый код аудиоплеера для Web Audio API.

Все в порядке, когда я подключаю свой аудиоинтерфейс USB 7.1 (TASCAM 16×08 — есть 8 выходных каналов) и запускаю свое приложение на компьютере с Windows. context.destination.maxChannelCount равно 8, и я могу выбрать канал для вывода звука.

Но когда я делаю то же самое на компьютере с Linux context.destination.maxChannelCount , всегда равно 2 (стерео).

Я пытался:

  • создать виртуальное многоканальное аудиоустройство = тот же результат — всегда только максимальное количество каналов 2;
  • настройка alsa, pulseaudio, jack audio connection kit и многого другого…

Результат тот же: в моем коде 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
  

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

Ответ №1:

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

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

Комментарии:

1. Установка этого значения в default-sample-channels = 6 моем ~/.pulse/daemon.conf файле исправила это для меня, спасибо!

Ответ №2:

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

Комментарии:

1. Я использую electron js — мой браузер Chromium. Похоже, что Chromium в Linux не может определить количество каналов устройства и установить его равным 2 по умолчанию

2. Попробуйте и посмотрите, какое количество выходных данных вы получаете в разных браузерах в Linux. Я предполагаю, что у вас этот аудиоинтерфейс работает правильно в Linux? как у вас где-то в ОС говорится, что у вас доступно 8 выходов?

3. Это может быть Chromium, но может быть и что-то другое. Говорит ли ваша ОС, что у вас есть 8 выходов?