本页内容

QMediaDevices Class

QMediaDevices 类提供了有关可用多媒体输入和输出设备的信息。更多内容...

头文件: #include <QMediaDevices>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
在 QML 中: MediaDevices
继承自: QObject

属性

信号

静态公共成员

QList<QAudioDevice> audioInputs()
QList<QAudioDevice> audioOutputs()
QAudioDevice defaultAudioInput()
QAudioDevice defaultAudioOutput()
QCameraDevice defaultVideoInput()
QList<QCameraDevice> videoInputs()

详细说明

QMediaDevices 类提供有关可用多媒体设备及系统默认设置的信息。它监视以下三类设备:

  • 音频输入设备(麦克风)
  • 音频输出设备(扬声器、耳机)
  • 视频输入设备(摄像头)

QMediaDevices 为每个设备组提供独立的列表。如果检测到有新设备连接到系统,或者已连接的设备已从系统断开,它将更新相应的设备列表,并发出信号以通知该变化。

可使用QMediaDevices::audioInputs 和QMediaDevices::audioOutputs 函数枚举系统上的所有麦克风和扬声器/耳机。本示例首先获取所有已连接麦克风的列表,然后打印其标识符、描述以及是否为默认设备。

const QList<QAudioDevice> audioDevices = QMediaDevices::audioInputs();
for (const QAudioDevice &device : audioDevices)
{
    out << "ID: " << device.id() << Qt::endl;
    out << "Description: " << device.description() << Qt::endl;
    out << "Is default: " << (device.isDefault() ? "Yes" : "No") << Qt::endl;
}

同样地,QMediaDevices::videoInputs 将返回所有已连接摄像头的列表。在此示例中,我们将列出所有已连接的摄像头及其标识符、描述,以及是否为默认摄像头。

const QList<QCameraDevice> videoDevices = QMediaDevices::videoInputs();
for (const QCameraDevice &device : videoDevices)
{
    out << "ID: " << device.id() << Qt::endl;
    out << "Description: " << device.description() << Qt::endl;
    out << "Is default: " << (device.isDefault() ? "Yes" : "No") << Qt::endl;
}

QMediaDevices 会监控每个设备组的系统默认设置,并会在系统设置发生任何变更时发出通知。 例如,如果用户在系统设置中选择了新的默认音频输出设备,QMediaDevices 将相应地更新默认音频输出并发出信号。如果系统未为摄像头或音频输入提供默认设备,QMediaDevices 将从列表中选择第一个设备作为默认设备。

虽然使用默认的输入和输出设备通常足以满足多媒体的播放或录制需求,但往往需要显式地选择要使用的设备。

QMediaDevices 的静态方法是线程安全的,并引用底层的单例对象。

注意:在 WebAssembly 平台上,由于其异步特性,设备列表只有在收到audioInputsChanged 、audioOutputsChanged 或videoInputsChanged 通知后才会可用。

属性文档

[read-only] audioInputs : QList<QAudioDevice>

返回系统上可用的音频输入设备列表。

这些设备通常是麦克风。设备可以是内置的,也可以是通过 USB 或蓝牙等方式连接的。

访问函数:

QList<QAudioDevice> audioInputs()

通知信号:

void audioInputsChanged()

[read-only] audioOutputs : QList<QAudioDevice>

返回系统中可用的音频输出设备列表。

这些设备通常是扬声器或耳机。设备可以是内置的,也可以是通过 USB 或蓝牙等方式连接的。

访问函数:

QList<QAudioDevice> audioOutputs()

通知信号:

void audioOutputsChanged()

[read-only] defaultAudioInput : QAudioDevice

返回默认的音频输入设备。

在应用程序运行期间,默认设备可能会发生变化。此时将发出audioInputsChanged()信号。

访问函数:

QAudioDevice defaultAudioInput()

通知信号:

[read-only] defaultAudioOutput : QAudioDevice

返回默认的音频输出设备。

在应用程序运行期间,默认设备可能会发生变化。此时会发出audioOutputsChanged()信号。

访问函数:

QAudioDevice defaultAudioOutput()

通知信号:

[read-only] defaultVideoInput : QCameraDevice

返回系统上的默认摄像头。

注意: 在使用返回的对象 之前,应使用 isNull() 进行检查,以防系统中不存在默认摄像头或根本没有摄像头。

在应用程序运行期间,默认设备可能会发生变化。此时将发出videoInputsChanged()信号。

访问函数:

QCameraDevice defaultVideoInput()

通知信号:

另请参阅 videoInputs()。

[read-only] videoInputs : QList<QCameraDevice>

返回系统中可用摄像头的列表。

访问函数:

QList<QCameraDevice> videoInputs()

通知信号:

void videoInputsChanged()

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.