Spec-Zone.ru › Qt 5.12

Класс 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
  • 31 открытых функций, унаследованных от QObject

Статические открытые члены

const QMetaObject staticMetaObject
  • 9 статических открытых членов, унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 открытый слот, унаследованный от QObject
  • 2 сигнала, унаследованные от 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 = 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.12/qaudiosystemplugin.html

Spec-Zone.ru

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