日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记-Qt5录音功能的实现

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记-Qt5录音功能的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

基本概念

代碼與實例


?

基本概念

首先是Qt5中的新特性:

Qt5中關于多媒體的新特性:
? ? ? ? ? 1. QML API接口;
? ? ? ? ? 2. 能同時使用MediaPlayer和VideoOutput;
? ? ? ? ? 3. QML Torch類;
? ? ? ? ? 4. 增加了QAudioRecorder這一新類;
? ? ? ? ? 5. 更加強大的QAudioOutput和QAudioInput;
? ? ? ? ? 6. 更多的實例和文檔;
? ? ? ? ? 7. 把QSound類從Qt CUI模塊移到了Qt Multimedia模塊;
? ? ? ? ? 8. QSoundEffect不僅支持C++,還支持QML;
? ? ? ? ? 9. QRadioData和RadioData也能使用;
? ? ? ? ? 10. 優化了各種API以及修補了BUG。

這里還得記錄2個類!

QAudioRecorder提供了錄音功能,這個是高級多媒體錄制類,他是QmediaRecorderder的子類,用法和他差不多

下面是官方的實例:

audioRecorder = new QAudioRecorder;QAudioEncoderSettings audioSettings;audioSettings.setCodec("audio/amr");audioSettings.setQuality(QMultimedia::HighQuality);audioRecorder->setEncodingSettings(audioSettings);audioRecorder->setOutputLocation(QUrl::fromLocalFile("test.amr"));audioRecorder->record();

此外QAudioRecorder還提供了選擇audioinput的功能

QStringList inputs = audioRecorder->audioInputs();QString selectedInput = audioRecorder->defaultAudioInput();foreach (QString input, inputs) {QString description = audioRecorder->audioInputDescription(input);// show descriptions to user and allow selectionselectedInput = input;}audioRecorder->setAudioInput(selectedInput);

Audio Recorder Example提供了這個類的詳細用法,這個其實本人的例子,就是Audio Recorder Example的關鍵提提取出來的!!!!

?

下面來看另外一個類:QAudioEncoderSettings

這個類提供了編碼方面的設置。

用這個類去指定QMediaRecorder中相關的設置(因為QAudioRecorder為QMediaRecorder的子類,所有他也可以設置),通過調用setAudioSettings這個函數進行設置!

官方給出的相關代碼!

QAudioEncoderSettings audioSettings;audioSettings.setCodec("audio/mpeg");audioSettings.setChannelCount(2);recorder->setAudioSettings(audioSettings);

?

代碼與實例

程序運行截圖如下:

錄了4-5s的時間(程序里面是5s)

源碼如下:

#include <QCoreApplication> #include <QAudioEncoderSettings> #include <QUrl> #include <QAudioRecorder> #include <QTimer> #include <QEventLoop> #include <QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QAudioRecorder *audioRecorder = new QAudioRecorder;if(!audioRecorder->setOutputLocation(QUrl::fromLocalFile("E:\\Qt2019\\multimediaTest\\1.wav"))){qDebug() << "文件保存有毒!退出!";return 0;}QStringList audioInputList = audioRecorder->audioInputs(); //audioInputList[0]為麥克風QStringList audioCodecsList = audioRecorder->supportedAudioCodecs(); //audioCodecsList[0]為 audio/pcmaudioRecorder->setAudioInput(audioInputList[0]);QAudioEncoderSettings settings;settings.setCodec(audioCodecsList[0]);settings.setSampleRate(16000); //采樣率 XXXXXXXsettings.setBitRate(128000);settings.setQuality(QMultimedia::EncodingQuality(10));settings.setEncodingMode(QMultimedia::ConstantBitRateEncoding);audioRecorder->setEncodingSettings(settings, QVideoEncoderSettings());audioRecorder->record();qDebug() << "start!";QEventLoop loop;QTimer::singleShot(5 * 1000, &loop, SLOT(quit()));loop.exec();audioRecorder->stop();delete audioRecorder;qDebug() << "over";return a.exec(); }

?

總結

以上是生活随笔為你收集整理的Qt文档阅读笔记-Qt5录音功能的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。