測試揚聲器的實現
主要播放裝置:我們使用的是QMediaPlayer
來實現播放音訊。
實現步驟
- 使用
QMediaDevices::audioOutputs()
方法來獲取電腦上的所有音訊輸出裝置。並存放到QList<QAudioDevice> outputDevices
中;預設使用系統預設的輸出即耳機,下標為0的outputDevices中; - 我們初始化的輸出裝置的下標為0,然後從QList中去獲取輸出裝置:
QAudioDevice selectedDevice = outputDevices[currentAudioOutputDeviceIndex];
; - 建立一個
QMediaPlayer
物件並指定當前類為其父類物件; - 使用選擇的輸出裝置,建立一個
QAudioOutput
物件:QAudioOutput *audioOutput = new QAudioOutput(selectedDevice, this);
; - 設定
QMediaPlayer
的輸出物件:player->setAudioOutput(audioOutput);
; - 設定音訊檔案並播放音訊:
player->setSource(QUrl("qrc:/resources/gaisidewenrou.mp3")); player->play();
;
流程圖解
[選擇輸出設定] ---(生成)--->[輸出裝置物件(QAudioOutput)]------>[建立QMediaPlayer]------> [繫結輸出物件]------> [設定音訊檔案]------> [播放]
程式碼實現
outputDevices = QMediaDevices::audioOutputs();
QString deviceName;
for (const QAudioDevice &device : outputDevices) {
deviceName = device.description();
speakerDevice->addItem(deviceName);
}
if (outputDevices.isEmpty()) {
qDebug() << "No audio output devices available!";
return;
}
QAudioDevice selectedDevice = outputDevices[currentAudioOutputDeviceIndex];
QAudioOutput *audioOutput = new QAudioOutput(selectedDevice, this);
//audioOutput->setVolume(1.0);
// 設定音訊輸出
player = new QMediaPlayer(this);
player->setAudioOutput(audioOutput);
player->setSource(QUrl("qrc:/resources/gaisidewenrou.mp3"));
player->play();