mirror of
https://github.com/JDM170/radio_recorder
synced 2025-12-10 05:57:20 +07:00
64 lines
2.0 KiB
C++
64 lines
2.0 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
MainWindow::MainWindow(QWidget *parent) :
|
|
QMainWindow(parent),
|
|
ui(new Ui::MainWindow)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
my_proc = new QProcess();
|
|
connect(my_proc, SIGNAL(started()), this, SLOT(slotStartedStdout()));
|
|
connect(my_proc, SIGNAL(finished(int)), this, SLOT(slotFinishedStdout(int)));
|
|
// box = new QMessageBox();
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void MainWindow::on_pushButton_clicked()
|
|
{
|
|
QString directory = QFileDialog::getSaveFileName(this, "Сохранить как...", "D:", "MP3 (*.mp3)");
|
|
ui->directory->setText(directory);
|
|
QString
|
|
link = " -i " + ui->link->text().toUtf8(), // http://novosibirsk.radiokp32.mp3.streamr.ru, http://air.radiorecord.ru:805/rr_320, etc...
|
|
time = " -t " + secondToTime(ui->time->text().toInt()), // 60 second, 120 second, etc...
|
|
bitrate = " -ab " + ui->bitrate->currentText(), // 128k, 192k, 256k, 320k, etc...
|
|
discretisation = " -ar " + ui->discretisation->currentText(),
|
|
strCommand = "ffmpeg\\bin\\ffmpeg.exe " + link + " -acodec libmp3lame " + bitrate + discretisation + time + " " + directory;
|
|
// box->setText(strCommand); // Debug
|
|
// box->exec(); // Debug
|
|
my_proc->start(strCommand);
|
|
}
|
|
|
|
void MainWindow::slotStartedStdout() {
|
|
ui->textEdit->append("Идет запись!");
|
|
}
|
|
|
|
void MainWindow::slotFinishedStdout(int code) {
|
|
if(code == 0) {
|
|
ui->textEdit->append("Запись завершена!\n");
|
|
}
|
|
else if(code == 1) {
|
|
ui->textEdit->append("Ошибка!\n");
|
|
QString error = my_proc->readAllStandardError();
|
|
ui->textEdit->append(error);
|
|
}
|
|
}
|
|
|
|
QString MainWindow::secondToTime(int i_time) {
|
|
QString time;
|
|
if(i_time < 60) {
|
|
time = "00:00:" + QString::number(i_time);
|
|
}
|
|
else {
|
|
int minute = i_time / 60, hour = minute / 60;
|
|
time = QString::number(hour) + ":" +
|
|
QString::number(minute - 60*hour) + ":" +
|
|
QString::number(i_time - 60*minute);
|
|
}
|
|
return time;
|
|
}
|