QAudioDevice 类

QAudioDevice 类提供音频设备及其功能的有关信息。 更多...

头: #include <QAudioDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

公共类型

enum 模式 { Null, Input, Output }

特性

公共函数

QAudioDevice ()
QAudioDevice (const QAudioDevice & other )
QAudioDevice (QAudioDevice && other )
~QAudioDevice ()
QAudioFormat::ChannelConfig channelConfiguration () const
QString description () const
QByteArray id () const
bool isDefault () const
bool isFormatSupported (const QAudioFormat & settings ) const
bool isNull () const
int maximumChannelCount () const
int maximumSampleRate () const
int minimumChannelCount () const
int minimumSampleRate () const
QAudioDevice::Mode mode () const
QAudioFormat preferredFormat () const
QList<QAudioFormat::SampleFormat> supportedSampleFormats () const
void swap (QAudioDevice & other )
bool operator!= (const QAudioDevice & other ) const
QAudioDevice & operator= (QAudioDevice && other )
QAudioDevice & operator= (const QAudioDevice & other )
bool operator== (const QAudioDevice & other ) const

详细描述

QAudioDevice describes an audio device available in the system, either for input or for playback.

A QAudioDevice is used by Qt to construct classes that communicate with the device – such as QAudioSource ,和 QAudioSink . It is also used to determine the input or output device to use in a capture session or during media playback.

The QAudioDevice instance retains its properties throughout its lifetime, even if the corresponding physical device is disconnected or its settings are modified. To keep track of updated properties, the user should load new instances of QAudioDevice from QMediaDevices when the relevant signals are fired.

You can also query each device for the formats it supports. A format in this context is a set consisting of a channel count, sample rate, and sample type. A format is represented by the QAudioFormat 类。

The values supported by the device for each of these parameters can be fetched with minimumChannelCount (), maximumChannelCount (), minimumSampleRate (), maximumSampleRate () 和 supportedSampleFormats (). The combinations supported are dependent on the audio device capabilities. If you need a specific format, you can check if the device supports it with isFormatSupported (). For instance:

{
    sourceFile.setFileName("/tmp/test.raw");
    sourceFile.open(QIODevice::ReadOnly);
    QAudioFormat format;
    // Set up the format, eg.
    format.setSampleRate(44100);
    format.setChannelCount(1);
    format.setSampleFormat(QAudioFormat::Int16);
    QAudioDevice info(QMediaDevices::defaultAudioOutput());
    if (!info.isFormatSupported(format)) {
        qWarning() << "Raw audio format not supported by backend, cannot play audio.";
        return;
    }
    audio = new QAudioSink(format, this);
    connect(audio, QAudioSink::stateChanged, this, &AudioInputExample::handleStateChanged);
    audio->start(&sourceFile);
}
					

The set of available devices can be retrieved from the QMediaDevices 类。

例如:

const auto devices = QMediaDevices::audioOutputs();
for (const QAudioDevice &device : devices)
    qDebug() << "Device: " << device.description();
					

In this code sample, we loop through all devices that are able to output sound, i.e., play an audio stream in a supported format. For each device we find, we simply print the deviceName().

另请参阅 QAudioSink , QAudioSource ,和 QAudioFormat .

成员类型文档编制

enum QAudioDevice:: 模式

Describes the mode of this device.

常量 描述
QAudioDevice::Null 0 A null device.
QAudioDevice::Input 1 An input device.
QAudioDevice::Output 2 An output device.

特性文档编制

[read-only] description : const QString

Returns a human readable name of the audio device.

Use this string to present the device to the user.

访问函数:

QString description () const

[read-only] id : const QByteArray

Returns an identifier for the audio device.

设备名称从属所使用的平台/音频插件。

They are a unique identifier for the audio device.

访问函数:

QByteArray id () const

[read-only] isDefault : const bool

Returns true if this is the default audio device.

访问函数:

bool isDefault () const

[read-only] mode : const 模式

Returns whether this device is an input or output device.

访问函数:

QAudioDevice::Mode mode () const

成员函数文档编制

QAudioDevice:: QAudioDevice ()

Constructs a null QAudioDevice object.

QAudioDevice:: QAudioDevice (const QAudioDevice & other )

构造副本为 other .

[noexcept] QAudioDevice:: QAudioDevice ( QAudioDevice && other )

Move constructs from other .

[noexcept] QAudioDevice:: ~QAudioDevice ()

销毁此音频设备信息。

QAudioFormat::ChannelConfig QAudioDevice:: channelConfiguration () const

Returns the channel configuration of the device.

bool QAudioDevice:: isFormatSupported (const QAudioFormat & settings ) const

返回 true 若供给 settings are supported by the audio device described by this QAudioDevice .

bool QAudioDevice:: isNull () const

Returns whether this QAudioDevice object holds a valid device definition.

int QAudioDevice:: maximumChannelCount () const

Returns the maximum number of supported channel counts.

This is typically 1 for mono sound, or 2 for stereo sound.

int QAudioDevice:: maximumSampleRate () const

Returns the maximum supported sample rate (in Hertz).

int QAudioDevice:: minimumChannelCount () const

Returns the minimum number of supported channel counts.

This is typically 1 for mono sound, or 2 for stereo sound.

int QAudioDevice:: minimumSampleRate () const

Returns the minimum supported sample rate (in Hertz).

QAudioFormat QAudioDevice:: preferredFormat () const

Returns the default audio format settings for this device.

These settings are provided by the platform/audio plugin being used.

They are also dependent on the QtAudio ::Mode being used.

A typical audio system would provide something like:

  • Input settings: 48000Hz mono 16 bit.
  • Output settings: 48000Hz stereo 16 bit.

QList < QAudioFormat::SampleFormat > QAudioDevice:: supportedSampleFormats () const

Returns a list of supported sample types.

[noexcept] void QAudioDevice:: swap ( QAudioDevice & other )

Swaps the audio device with the other .

bool QAudioDevice:: operator!= (const QAudioDevice & other ) const

返回 true,若此 QAudioDevice class represents a different audio device than other

[noexcept] QAudioDevice &QAudioDevice:: operator= ( QAudioDevice && other )

移动 other 到此 QAudioDevice 对象。

QAudioDevice &QAudioDevice:: operator= (const QAudioDevice & other )

设置 QAudioDevice 对象等于 other .

bool QAudioDevice:: operator== (const QAudioDevice & other ) const

返回 true,若此 QAudioDevice class represents the same audio device as other .