QAudioDevice 类提供音频设备及其功能的有关信息。 更多...
头: | #include <QAudioDevice> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake: | QT += multimedia |
enum | Mode { 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.
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(8000); format.setChannelCount(1); format.setSampleFormat(QAudioFormat::UInt8); 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 .
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
Mode
Returns whether this device is an input or output device.
访问函数:
QAudioDevice::Mode | mode () const |
Constructs a null QAudioDevice object.
构造副本为 other .
[noexcept]
QAudioDevice::
QAudioDevice
(
QAudioDevice
&&
other
)
Move constructs from other .
[noexcept]
QAudioDevice::
~QAudioDevice
()
销毁此音频设备信息。
Returns the channel configuration of the device.
返回 true 若供给 settings are supported by the audio device described by this QAudioDevice .
Returns whether this QAudioDevice object holds a valid device definition.
Returns the maximum number of supported channel counts.
This is typically 1 for mono sound, or 2 for stereo sound.
Returns the maximum supported sample rate (in Hertz).
Returns the minimum number of supported channel counts.
This is typically 1 for mono sound, or 2 for stereo sound.
Returns the minimum supported sample rate (in Hertz).
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:
Returns a list of supported sample types.
[noexcept]
void
QAudioDevice::
swap
(
QAudioDevice
&
other
)
Swaps the audio device with the other .
返回 true,若此 QAudioDevice class represents a different audio device than other
[noexcept]
QAudioDevice
&QAudioDevice::
operator=
(
QAudioDevice
&&
other
)
移动 other 到此 QAudioDevice 对象。
设置 QAudioDevice 对象等于 other .
返回 true,若此 QAudioDevice class represents the same audio device as other .