QAudioEncoderSettings AndroidAudioEncoderControl::audioSettings() const { QAudioEncoderSettings settings; settings.setCodec(tr("audio/amr-nb")); settings.setSampleRate(8); return settings; }
AudioRecorder::AudioRecorder(QObject *parent) : QObject(parent) { m_audioRecorder = new QAudioRecorder( this ); QAudioEncoderSettings audioSettings; audioSettings.setCodec("audio/PCM"); audioSettings.setQuality(QMultimedia::HighQuality); m_audioRecorder->setEncodingSettings(audioSettings); // https://forum.qt.io/topic/42541/recording-audio-using-qtaudiorecorder/2 m_audioRecorder->setContainerFormat("wav"); m_recording = false; }
void AudioRecorder::startRecording(){ if(recorder->state() != QMediaRecorder::StoppedState) return; source->setAudioInput(source->defaultAudioInput()); QAudioEncoderSettings encoderSettings; encoderSettings.setChannelCount(1); encoderSettings.setSampleRate(44000); // for FLAC encoding: encoderSettings.setCodec("audio/FLAC"); encoderSettings.setEncodingMode(QtMultimediaKit::ConstantQualityEncoding); encoderSettings.setQuality(QtMultimediaKit::EncodingQuality(QtMultimediaKit::VeryLowQuality)); recorder->setEncodingSettings(encoderSettings); recorder->record(); }
void AudioRecorder::toggleRecord() { if (audioRecorder->state() == QMediaRecorder::StoppedState) { audioRecorder->setAudioInput(boxValue(ui->audioDeviceBox).toString()); QAudioEncoderSettings settings; settings.setCodec(boxValue(ui->audioCodecBox).toString()); settings.setSampleRate(boxValue(ui->sampleRateBox).toInt()); settings.setBitRate(boxValue(ui->bitrateBox).toInt()); settings.setChannelCount(boxValue(ui->channelsBox).toInt()); settings.setQuality(QMultimedia::EncodingQuality(ui->qualitySlider->value())); settings.setEncodingMode(ui->constantQualityRadioButton->isChecked() ? QMultimedia::ConstantQualityEncoding : QMultimedia::ConstantBitRateEncoding); QString container = boxValue(ui->containerBox).toString(); audioRecorder->setEncodingSettings(settings, QVideoEncoderSettings(), container); audioRecorder->record(); } else { audioRecorder->stop(); } }
QAudioEncoderSettings encoderSettings() { QAudioEncoderSettings audioSettings; audioSettings.setCodec("audio/pcm"); audioSettings.setQuality(QMultimedia::HighQuality); return audioSettings; }