이 페이지에서

오디오 레코더 예제

사용 가능한 장치 및 지원되는 코덱 확인.

오디오 레코더 예제는 사용 가능한 장치와 지원되는 코덱을 식별하는 방법과 QAudioRecorder 클래스의 사용법을 보여줍니다.

오디오 입력, 코덱 및 형식 유형을 선택하기 위한 설정 패널

예제 실행

다음 위치에서 예제를 실행할 수 있습니다.

창 및 오디오 설정 표시

사용자가 적절한 오디오 입력, 코덱, 컨테이너, 샘플 레이트 및 채널을 선택할 수 있는 창을 표시합니다. 이 창을 통해 품질 또는 비트 레이트 중 하나를 설정할 수 있습니다. 마지막으로 출력 파일을 선택하고 녹음을 시작할 수 있습니다.

목록은 다음 메서드를 사용하여 채워집니다:

화질 슬라이더는 0(영)부터 QMediaRecorder::VeryHighQuality 까지 설정 가능하며 기본값은 QMediaRecorder::NormalQuality 입니다. 반면, 비트레이트 입력란은 목록에 하드코딩되어 있습니다.

오디오 녹음

오디오를 녹음하려면 QAudioRecorder 객체를 생성하고,

audioRecorder = new QAudioRecorder(this);

위에서 설명한 대로 목록을 설정하면 됩니다. 녹음 및 일시 정지 버튼의 텍스트는 audioRecorder 객체의 state 에 따라 전환됩니다. 즉, 상태가 QMediaRecorder::StoppedState 이면 버튼 텍스트는 "Record"와 "Pause"가 됩니다. QMediaRecorder::RecordingState 인 경우 녹음 버튼에는 "Stop"이라는 텍스트가 표시되고, QMediaRecorder::PausedState 인 경우 일시 정지 버튼에는 "Resume"이라는 텍스트가 표시됩니다.

버튼을 누르면 상태에 따라 토글 동작이 발생합니다. 녹화가 중지된 상태에서 녹화 버튼을 누르면 audioRecorder 객체에 인코딩 설정과 컨테이너가 설정되고, record() 메서드를 사용하여 녹화가 시작됩니다.

QMediaFormat format;
format.setCodec(boxValue(ui->audioCodecBox).toString());
audioRecorder->setMediaFormat(format);
audioRecorder->setSampleRate(boxValue(ui->sampleRateBox).toInt());
audioRecorder->setBitRate(boxValue(ui->bitrateBox).toInt());
audioRecorder->setQuality(QMediaRecorder::EncodingQuality(ui->qualitySlider->value()));
audioRecorder->setEncodingMode(ui->constantQualityRadioButton->isChecked() ?
                         QMediaRecorder::ConstantQualityEncoding :
                         QMediaRecorder::ConstantBitRateEncoding);

QString container = boxValue(ui->containerBox).toString();

audioRecorder->record();

녹화 중에는 audioRecorder 객체의 durationChanged 신호에서 제공하는 지속 시간 정보로 애플리케이션의 상태 표시줄이 업데이트됩니다.

ui->statusbar->showMessage(tr("Recorded %1 sec").arg(duration / 1000));

예제 프로젝트 @ code.qt.io

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.