Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QAudioDeviceInfo::availableDevices(QAudio::AudioOutput); 非常耗时,不知为何。



  • 需要用到音频输出设备,发现获取可用的音频输出设备的函数非常耗时,每次调用都耗时9秒以上。直接在主线程中使用,导致UI会卡住。是不是只能提前开个线程调用?还是我有什么需要注意的地方?希望有经验的大佬麻烦解答一下。😥

    代码:

    #include <QApplication>
    #include <QDateTime>
    #include <QAudioDeviceInfo>
    #include <QDebug>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QTime time;
        time.start();
        QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
        qInfo() << time.restart();
    
        QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
        qInfo() << time.restart();
    
        QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
        qInfo() << time.restart();
    
        return a.exec();
    }
    

    输出:
    262b9642-07d0-4bab-b7f3-8e6194638412-image.png

    Qt version:
    Qt 5.13.0 MSVC2017 32bit

    OS: Windows 10 (10.0.18362)


Log in to reply