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 |
属性
|
|
信号
void | audioInputsChanged() |
void | audioOutputsChanged() |
void | videoInputsChanged() |
静态公共成员
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 是一个单例对象,所有获取器都是线程安全的。
属性文档
[read-only]
audioInputs : const QList<QAudioDevice>
返回系统中可用音频输入设备的列表。
这些设备通常是麦克风。设备可以是内置的,也可以通过 USB 或蓝牙等方式连接。
访问功能:
QList<QAudioDevice> | audioInputs() |
提示信号:
void | audioInputsChanged() |
[read-only]
audioOutputs : const QList<QAudioDevice>
返回系统中可用音频输出设备的列表。
这些设备通常是扬声器或耳机。设备可以是内置的,也可以通过 USB 或蓝牙等方式连接。
访问功能:
QList<QAudioDevice> | audioOutputs() |
提示信号:
void | audioOutputsChanged() |
[read-only]
defaultAudioInput : const QAudioDevice
返回默认音频输入设备。
默认设备可在应用程序运行期间更改。此时会发出audioInputsChanged() 信号。
访问功能:
QAudioDevice | defaultAudioInput() |
Notifier 信号:
void | audioInputsChanged() |
[read-only]
defaultAudioOutput : const QAudioDevice
返回默认音频输出设备。
默认设备可在应用程序运行期间更改。此时会发出audioOutputsChanged() 信号。
访问功能:
QAudioDevice | defaultAudioOutput() |
Notifier 信号:
void | audioOutputsChanged() |
[read-only]
defaultVideoInput : const QCameraDevice
返回系统中的默认摄像机。
注意: 在使用前应使用 isNull() 检查返回的对象,以防没有默认摄像机或根本没有摄像机。
在应用程序运行期间,默认设备可能会发生变化。在这种情况下,将发出videoInputsChanged() 信号。
访问功能:
QCameraDevice | defaultVideoInput() |
Notifier 信号:
void | videoInputsChanged() |
另请参见 videoInputs()。
[read-only]
videoInputs : const QList<QCameraDevice>
返回系统中可用摄像机的列表。
访问功能:
QList<QCameraDevice> | videoInputs() |
通知信号:
void | videoInputsChanged() |
© 2025 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.