Здравствуйте!
В Ubuntu-14.04 в Qt-5.2 обнаружилось, что функция QAudioDeviceInfo::availableDevices(QAudio::AudioInput),
похоже, просто зависает. Она вызывается в отдельном модуле для работы с звуком, он начинается с её вызова
и дальше него исполнение не идёт. Звуковая карта есть. В чём причина и что делать?
На форуме Ubuntu пока не ответили.
Пётр.
QAudioDeviceInfo in Qt5.2 in Ubuntu-14.04
Оказалось, что дистрибутивному Qt для работы Audio требуется, чтобы был запущен pulseaudio,
а без него выдаётся сообщение, что невозможно создать контекст pulseaudio, и то же самое
сообщает аудиопример из qt5-examples. С запущенным pulseaudio работает.
Пётр.
Оказалось, что не совсем работает. Зависания нет, но функция QAudioDeviceInfo::availableDevices(QAudio::AudioInput)
не видит входных устройств, возвращает пустой список.
Пётр.
ЕМНИП, там нужно Qt собирать без PA. Раньше как-то собирали, но я не вдавался в подробности.Оказалось, что дистрибутивному Qt для работы Audio требуется, чтобы был запущен pulseaudio
QAudioDeviceInfo::availableDevices(QAudio::AudioInput)
не видит входных устройств, возвращает пустой список.
а в стандартном kde-миксере есть устройства input? Они работают? Вы их включили?
[quote="Peter"]QAudioDeviceInfo::availableDevices(QAudio::AudioInput)
не видит входных устройств, возвращает пустой список.
а в стандартном kde-миксере есть устройства input? Они работают? Вы их включили?[/quote]
Нет, я их не включал и раньше мне этого делать не приходилось.
Я даже не знаю, есть ли там kde-mixer, там xfce.
Я запустил pavucontrol и он зависает: сообщает, что установлено соединение с pulsaudio,
просит подождать и ничего не появляется.
Пётр.
Я даже не знаю, есть ли там kde-mixer, там xfce.
AFAIK в кедах всё централизовано, и звук работает исключительно через кдешные костыли.
Т.е. пока вы всякие кнопочки и менюшки на Qt делаете, KDE вам не нужно, но вот звук там из KDE, насколько я знаю. Впрочем, я могу и ошибаться.
[quote="Peter"]Я даже не знаю, есть ли там kde-mixer, там xfce.
AFAIK в кедах всё централизовано, и звук работает исключительно через кдешные костыли.
Т.е. пока вы всякие кнопочки и менюшки на Qt делаете, KDE вам не нужно, но вот звук там из KDE, насколько я знаю. Впрочем, я могу и ошибаться.[/quote]
В Astra-Linux 1.3 у нас скомпилированная Qt-4.8.4, звук программа записывает и pulseaudio не запускется.
Сейчас посмотрю, что такое padevchooser, этот пакет сейчас не установлен.
Пётр.
Не удаётся установить padevchooser-0.9.4-1-1, хотя это именно та версия, которая должна быть в Ubuntu-14.04.
Ему требуется libgnome-desktop-2-17, а в системе libgnome-desktop-3-7. Принудительно устанавливать не пробовал.
Пётр.
Я добился того, что pavucontrol стал запускаться. Главное, что для этого потребовалось -
в /etc/init/pusleaudio.conf в команде "exec" запускать его без "--system".
Кроме того, если создавать при этом отдельный /var/log/pulse.log, то его тоже надо
указывать в команде "exec", а если в /etc/pulse/pulse-daemon.conf,
то тогда pavucontrol запускается только от root'а.
Теперь программа видит все три звуковые устройства, их там два в процессорном модуле
и ещё USB-карта. Для alsa 1-я - это USB-карта и мне нужна именно она, а pusleaudio файл
/etc/modprobe.d/alsa-base.conf не читает и входное и выходное устройства по умолчанию
для него другие. Теперь придётся в программе устанавливать устройства по умолчанию через
функции Qt, в 5-й версии они есть.
Как их указать через настроечный файл pusleaudio, я не знаю, хотя вроде бы можно
с помощью pactl или pacmd.
Пётр.
Указал в /etc/pulse/default.pa входное и выходное устройства по умолчанию,
для этого в конец файла вставил set-default-source с именем usb-карты для входа
и set-default-sink с именем usb-карты для выхода, а имена взял из "pactl list", из "Name:".
Пётр.