資源描述:
《用Qt實現(xiàn)錄音以及放音》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、用Qt實現(xiàn)錄音以及放音環(huán)境:Ubuntu10.04,QtCreator2.0.1,Qt4.7.0參考Qt幫助文檔,對QAudioInput類以及QAudioOutput類進行操作,實現(xiàn)錄音以及放音.工作流程:test_record_ver0工程錄音3S,將聲音文件保存在/root/qt_code/test.raw中,test_play_ver0工程打開test.raw文件,并輸出聲音.源代碼:test_record_ver0工程:widget.h:#ifndefWIDGET_H#defineWIDGET_H#include#include#include
2、#includeusingnamespacestd;namespaceUi{classWidget;}classWidget:publicQWidget{Q_OBJECTpublic:explicitWidget(QWidget*parent=0);~Widget();privateslots:voidstopRecording();private:Ui::Widget*ui;QFileoutputFile;//classmember.QAudioInput*audio;//classmember.};#endif//WIDGET_Hwid
3、get.cpp:#include"widget.h"#include"ui_widget.h"Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);outputFile.setFileName("/root/qt_code/test.raw");outputFile.open(QIODevice::WriteOnly
4、QIODevice::Truncate);QAudioFormatformat;//setuptheformatyouwant,eg.format.setFre
5、quency(8000);format.setChannels(1);format.setSampleSize(8);format.setCodec("audio/pcm");format.setByteOrder(QAudioFormat::LittleEndian);format.setSampleType(QAudioFormat::UnSignedInt);QAudioDeviceInfoinfo=QAudioDeviceInfo::defaultInputDevice();if(!info.isFormatSupported(format)){qWarning()<<"def
6、aultformatnotsupportedtrytousenearest";format=info.nearestFormat(format);}audio=newQAudioInput(format,this);QTimer::singleShot(3000,this,SLOT(stopRecording()));audio->start(&outputFile);//Recordsaudiofor3000mscout<<"recordbegin!"<stop();outputFile.close(
7、);deleteaudio;cout<<"recordend!"<#include#include#include#includeusingnamespacestd;namespaceUi{classWidget;}classWidget:publicQWidget{Q_OBJECTpu
8、blic:explicitWidget(QWidget*parent=0);~Widget();privateslots:voidfinishedPlaying(QAudio::Statestate);private:Ui::Widget*ui;QFileinputFile;//classmember.QAudioOutput*audio;//classmember.};#endif//WIDGET_Hwideget.cpp:#include"