#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 выходов?