Нельзя параллельно воспроизводить несколько аудиопотоков
Chester 11 марта, 2017 - 00:48
Здравствуйте. У меня звуковая подсистема ALSA.
Проблема в том, что если я слушаю музыку в браузере -- то звук, например, в скайпе, у меня уже не работает.
И пишет вот что:
skype
[apulse] [error] do_connect_pcm, snd_pcm_open, Устройство или ресурс занято
[apulse] [error] do_connect_pcm, snd_pcm_open, Устройство или ресурс занято
Подскажите, как разобраться с проблемой. Или где искать?
»
- Для комментирования войдите или зарегистрируйтесь
Тема мутная.
А мутная из-за документации alsa.
В свое время разбирался с такой же проблемой, пришлось оформить /etc/asound.conf. Содержимое получилось следующее:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:1,0"
period_time 0
period_size 1024
buffer_size 4096
}
}
Принудительно задействуется микшер, как устройство по-умолчанию. Все это составлено без дОлжного понимания и по большей части методом тыка, но работает. :(
Буду благодарен специалистам по ALSA за комментарии.
Спасибо
Спасибо, добрый человек.
Заработало, что ли?
Заработало, что ли?
Я с этой темой долго копался,
Я с этой темой долго копался, делал чтобы вывод был одновременно на hdmi стерео (телек, с видеокарты) и колонки 5.1 (с интегрированной в мать звуковухи), чтобы не заморачиваться с переключением + на стереоканал эквалайзер чтобы применялся + чтобы приложения не блокировали звуковуху, составил файлик конфига примерный с комментариями для себя.
http://pastebin.com/3Q2chmvE
это вресия с косяками, я её допиливал позже, но актуальный конфиг на домашнем компе а я пишу с работы, поэтому посмотреть его не могу.
Проблема здесь простая.
Проблема здесь простая. Многие звуковые карточки не поддерживают многопоточность. То есть они могут воспроизводить только один поток данных. Количество потоков можно узнать по элементу subdevices в выводе aplay -l. Если есть только один subdevice, то попытка отрыть это устройство второй раз обречена на провал. В этом случае нужно использовать програмный mixing потоков. Есть несколько вариантов такого смешивания (jack, pulseaudio), но можно использовать и то, что предоставляется разработчиками Alsa. Это тот самый плагин dmix. Его использование в простейшем варианте уже приводили.
Чем больше юзерфрендли, тем сложнее юзать.