Spec-Zone.ru › Qt 5.15

Класс QAudioSystemPlugin

Класс QAudioSystemPlugin предоставляет абстрактный базовый класс для аудиоплагинов. Подробнее...

Заголовок: #include <QAudioSystemPlugin>
qmake: QT += multimedia
Наследует: QObject и QAudioSystemFactoryInterface
  • Список всех членов, включая унаследованные

Открытые функции

QAudioSystemPlugin(QObject *parent = nullptr)
virtual ~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

Подробное описание

Для создания аудиоплагина необходимо создать подкласс этого базового класса, переопределить чистые виртуальные функции 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 = nullptr)

Конструирует новый аудиоплагин с parent. Это вызывается автоматически макросом Q_PLUGIN_METADATA().

[virtual] 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.15/qaudiosystemplugin.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API