Advertisement
VssA

Not Working audio recording Qt

Jan 8th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.64 KB | None | 0 0
  1. #include "AudioRecord.h"
  2. #include <QMediaRecorder>
  3. #include <QMediaCaptureSession>
  4. #include <QAudioInput>
  5. #include <QAudioOutput>
  6.  
  7. #include <QDir>
  8. #include <QFile>
  9. #include <QMediaRecorder>
  10. #include <QStandardPaths>
  11. #include <qmediadevices.h>
  12. #include <qmediaformat.h>
  13. #include <qaudiodevice.h>
  14. #include <qaudiobuffer.h>
  15. #include <qaudioinput.h>
  16.  
  17.  
  18.  
  19.  
  20. #include <QtCharts/QChartView>
  21. #include <QtCharts/QLineSeries>
  22. #include <QtCharts/QChart>
  23. #include <QtCharts/QValueAxis>
  24.  
  25.  
  26. AudioRecord::AudioRecord(QObject *parent) : QObject(parent) {
  27.  
  28.     // audioRecorder = new QMediaRecorder(this);
  29.     // filePath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/recording.wav";
  30.     // audioRecorder->setOutputLocation(QUrl::fromLocalFile(filePath));
  31. }
  32. QMediaRecorder recorder;
  33.  
  34. void AudioRecord::startRecording() {
  35.     qDebug() << "starting recording";
  36.  
  37.     QList<QAudioDevice> availableDevices = QMediaDevices::audioInputs();
  38.  
  39.     for (const QAudioDevice &device : availableDevices) {
  40.         qDebug() << "AvailableDevice:" << device.description();
  41.         if (device.description() == "Headset Microphone (Realtek(R) Audio)") {
  42.             m_audioInput.setDevice(device);  // Используйте setDevice вместо присваивания
  43.             qDebug() << "Selected device:" << device.description();
  44.             break;
  45.         }
  46.     }
  47.  
  48.  
  49.  
  50.     // Убедитесь, что объект QMediaRecorder создан до QMediaCaptureSession.
  51.  
  52.     QMediaCaptureSession session;
  53.  
  54.     session.setAudioInput(&m_audioInput);
  55.     session.setRecorder(&recorder);
  56.  
  57.     QMediaFormat format;
  58.     format.setFileFormat(QMediaFormat::FileFormat::MP3);
  59.     format.setAudioCodec(QMediaFormat::AudioCodec::AAC);
  60.  
  61.     recorder.setAudioChannelCount(1);
  62.     recorder.setMediaFormat(format);
  63.     recorder.setQuality(QMediaRecorder::HighQuality);
  64.  
  65.  
  66.     // Убедитесь, что выходной файл имеет правильное расширение
  67.     recorder.setOutputLocation(QUrl::fromLocalFile("example"));
  68.  
  69.     // Проверьте, что объект QMediaRecorder готов к записи
  70.     if (!recorder.isAvailable()) {
  71.         qDebug() << "Media not available for recording.";
  72.         return;
  73.     }
  74.  
  75.     // Начинайте запись
  76.     recorder.record();
  77.  
  78.     qDebug() << "Recording started.";
  79. }
  80.  
  81. void AudioRecord::pauseRecording()
  82. {
  83.     qDebug() << "pause recording";
  84.  
  85. }
  86.  
  87. void AudioRecord::stopRecording() {
  88.     recorder.stop();
  89.     qDebug() << "ending recording";
  90.     emit recordingFinished();
  91. }
  92.  
  93. QString AudioRecord::getFilePath() const {
  94.     return filePath;
  95. }
  96.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement