Класс QAudioSystemPlugin
Класс QAudioSystemPlugin предоставляет абстрактный базовый класс для аудио-плагинов. Подробнее...
| Заголовок: | #include <QAudioSystemPlugin> |
| qmake: | QT += multimedia |
| Наследует: | QObject и QAudioSystemFactoryInterface |
Открытые функции
| QAudioSystemPlugin(QObject *parent = Q_NULLPTR) | |
| ~QAudioSystemPlugin() |
Переопределённые открытые функции
| virtual QList<QByteArray> | availableDevices(QAudio::Mode mode) const override = 0 |
| virtual QAbstractAudioDeviceInfo * | createDeviceInfo(const QByteArray &device, QAudio::Mode mode) override = 0 |
| virtual QAbstractAudioInput * | createInput(const QByteArray &device) override = 0 |
| virtual QAbstractAudioOutput * | createOutput(const QByteArray &device) override = 0 |
- 32 открытых функции унаследованы от QObject
- 4 открытых функции унаследованы от QAudioSystemFactoryInterface
Дополнительные унаследованные члены
- 1 свойство унаследовано от QObject
- 1 открытый слот унаследован от QObject
- 2 сигналы унаследованы от QObject
- 11 статические открытые члены унаследованы от QObject
- 9 защищённых функций унаследованы от QObject
Подробное описание
Класс QAudioSystemPlugin предоставляет абстрактный базовый класс для аудио-плагинов.
Для создания аудио-плагина необходимо создать подкласс этого базового класса, переопределить чисто виртуальные функции availableDevices(), createInput(), createOutput() и createDeviceInfo(), а затем экспортировать класс с помощью макроса Q_PLUGIN_METADATA().
Файл json, содержащий метаданные, должен содержать список ключей, соответствующих плагину. Добавьте "default" в список доступных ключей, чтобы переопределить значение устройства по умолчанию для вашего плагина.
{ "Keys": [ "default" ] } Для отладки новых плагинов доступны модульные тесты.
Qt поставляется с плагинами для Windows (WinMM и WASAPI), Linux (ALSA и PulseAudio), macOS/iOS (CoreAudio), Android (OpenSL ES) и QNX.
Если аудио-плагины недоступны, будет использоваться резервный «пустой» бэкэнд. Это должно вывести предупреждение, если это произойдёт при использовании QAudioInput или QAudioOutput. Для решения этой проблемы убедитесь, что зависимости для Qt-плагинов установлены в системе и переконфигурируйте Qt (например, пакет alsa-devel на Linux), или создайте собственный плагин с ключом по умолчанию, чтобы всегда переопределять резервный «пустой» бэкэнд. Самый простой способ определить, что у вас только «пустой» бэкэнд — получить список доступных аудиоустройств.
QAudioDeviceInfo::availableDevices(QAudio::AudioOutput).size() = 0 (пустой бэкэнд)
См. также QAbstractAudioDeviceInfo, QAbstractAudioOutput и QAbstractAudioInput.
Документация по функциям членов
QAudioSystemPlugin::QAudioSystemPlugin(QObject *parent = Q_NULLPTR)
Создаёт новый аудио-плагин с parent. Это вызывается автоматически макросом Q_PLUGIN_METADATA().
QAudioSystemPlugin::~QAudioSystemPlugin()
Уничтожает аудио-плагин
Вам никогда не нужно вызывать это явно. Qt уничтожает плагин автоматически, когда он больше не используется.
[override pure virtual] QList<QByteArray> QAudioSystemPlugin::availableDevices(QAudio::Mode mode) const
Возвращает список доступных аудиоустройств для mode
[override pure virtual] QAbstractAudioDeviceInfo *QAudioSystemPlugin::createDeviceInfo(const QByteArray &device, QAudio::Mode mode)
Возвращает указатель на QAbstractAudioDeviceInfo, созданный с использованием device и mode
[override pure virtual] QAbstractAudioInput *QAudioSystemPlugin::createInput(const QByteArray &device)
Возвращает указатель на QAbstractAudioInput, созданный с использованием идентификатора device
[override pure virtual] QAbstractAudioOutput *QAudioSystemPlugin::createOutput(const QByteArray &device)
Возвращает указатель на QAbstractAudioOutput, созданный с использованием идентификатора device
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qaudiosystemplugin.html