У меня проблема с использованием QAudioRecorder
без использования QMainWindow
. Это создаст файл с 0 байт, которые не воспроизводятся большинством обычных медиаплееров после запуска этого сценария здесь:Невозможно записать звук без QMainWindow
int main(int argc, char *argv[]){
QAudioRecorder q;
q.setAudioInput(q.audioInputs()[0]);
q.setOutputLocation(QUrl::fromLocalFile("simon.amr"));
q.record();
Sleep(10000);
}
В то время как это работает:
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
};
QAudioRecorder q;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
std::cout << "DEFAULT: " << q.defaultAudioInput().toStdString() << std::endl;
std::cout << "List: " << q.audioInputs().join(',').toStdString() << std::endl;
std::cout << "STATUS 0: " << q.status() << std::endl;
std::cout << "Location: " << QUrl::fromLocalFile("simon.amr").path().toStdString() << std::endl;
q.setAudioInput(q.audioInputs()[0]);
q.setOutputLocation(QUrl::fromLocalFile("simon.amr"));
q.record();
std::cout << "STATUS 1: " << q.status() << std::endl;
}
MainWindow::~MainWindow()
{
std::cout << "STATUS 2: " << q.status() << std::endl;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow recorder;
recorder.show();
return app.exec();
}
Как я могу использовать QAudioRecorder
без QMainWindow
? Я делаю что-то неправильно?
Вы должны использовать 'QCoreApplication' или' QApplication', потому что 'QAudioRecorder' требует цикла событий. – Nazar554
: o Это может быть так. Позвольте мне попробовать. – swtdrgn