1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #include "audiorecorderdialog.h"
- #include "ui_audiorecorderdialog.h"
- AudioRecorderDialog::AudioRecorderDialog(QWidget* parent) :
- QDialog(parent),
- ui(new Ui::AudioRecorderDialog)
- {
- ui->setupUi(this);
- m_recorder = new QAudioRecorder(this);
- ui->cbbDev->addItems(m_recorder->audioInputs());
- m_tmr = new QTimer(this);
- connect(m_tmr, &QTimer::timeout, this, &AudioRecorderDialog::onTimeOut);
- m_start = 0;
- QDateTime d = QDateTime::currentDateTime();
- m_fileName = QApplication::applicationDirPath() + "/data/audios/" + d.toString("yyyyMMddhhmmss");
- m_path = m_fileName + ".wav";
- }
- AudioRecorderDialog::~AudioRecorderDialog()
- {
- delete ui;
- }
- bool showAudioRecorderDialog(QString& path)
- {
- AudioRecorderDialog* dlg = new AudioRecorderDialog();
- bool f;
- int ret = dlg->exec();
- if (ret == QDialog::Accepted)
- {
- f = true;
- path = dlg->path();
- }
- else
- {
- f = false;
- path = "";
- }
- delete dlg;
- return f;
- }
- void AudioRecorderDialog::on_btnOk_clicked()
- {
- if (ui->btnOk->text() == "开始录制")
- {
- QAudioEncoderSettings audioSettings;
- qDebug() << audioSettings.codec();
- audioSettings.setCodec("audio/amr");
- audioSettings.setQuality(QMultimedia::HighQuality);
- m_recorder->setAudioInput(ui->cbbDev->currentText());
- m_recorder->setEncodingSettings(audioSettings);
- m_recorder->setOutputLocation(QUrl::fromLocalFile(m_fileName));
- m_recorder->record();
- m_tmr->start(1000);
- ui->btnOk->setText("停止录制");
- }
- else
- {
- m_recorder->stop();
- accept();
- }
- }
- void AudioRecorderDialog::on_btnCancel_clicked(bool checked)
- {
- m_recorder->stop();
- reject();
- }
- void AudioRecorderDialog::onTimeOut()
- {
- m_start++;
- ui->lblTime->setText(secondToString(m_start));
- }
- QString AudioRecorderDialog::path() const
- {
- return m_path;
- }
- void AudioRecorderDialog::setPath(const QString& path)
- {
- m_path = path;
- }
|