QT界面完成录音与播放功能以及环境配置
下面为库的移植与配置,粗斜体为本机路径,需要自行修改!!!!!(1)移植alsa-lib库移植三部曲 ------- 配置 编译 安装1)将源码拷贝到Ubuntu非共享目录,解压2)配置./configure --host=arm-linux --prefix=***/home(设置好的路径)*** --disable-python3)编译 安装makemake install(2)移植alsa-
·
下面为库的移植与配置,粗斜体为本机路径,需要自行修改!!!!!
(1)移植alsa-lib库
移植三部曲 ------- 配置 编译 安装
1)将源码拷贝到Ubuntu非共享目录,解压
2)配置
./configure --host=arm-linux --prefix=***/home(设置好的路径)*** --disable-python
3)编译 安装
make
make install
(2)移植alsa-utils库
1)解压配置
./configure --host=arm-linux --prefix=***/home(设置好的路径)***
--with-alsa-prefix=/home/gec/alsa/lib --with-alsa-inc-prefix=***/home(设置好的路径)***/include
--disable-alsamixer --disable-xmlto
2)编译 安装
make
make install
(3)将编译生成的目录(bin sbin lib share include)打包,拷贝到开发板,在开发版解压后将需要的文件拷贝到对应的位置。
1)库文件
以上三个文件拷贝到开发板/lib或者/usr/lib
cp libasourd.so* /lib -a
2)命令
将以上两个文件拷贝到开发板/bin或者/usr/bin
cp aplay arecord /bin -a
3)配置文件
将share目录全部拷贝到到开发板和编译生成目录相同的目录下
===>***/home(设置好的路径)***/share(开发板路径)
mkdir -p ***/home(设置好的路径)***/share
cp ***/home(设置好的路径)***/share -a
(4)录音和播放
1)arecord -d5 -c1 -r16000 -twav -fS16_LE xxx.WAV
-d:录音时间
-c:音轨
-r:采样评率
-t:封装格式
-f:量化位数
2)播放
aplay xxx.WAV
具体实现代码如下:
MyAudio.h
#ifndef MYAUDIO_H
#define MYAUDIO_H
#include <QWidget>
#include <QProcess>
QT_BEGIN_NAMESPACE
namespace Ui { class MyAudio; }
QT_END_NAMESPACE
class MyAudio : public QWidget
{
Q_OBJECT
public:
MyAudio(QWidget *parent = nullptr);
~MyAudio();
private slots:
void on_pushButton_record_clicked();
void on_pushButton_play_clicked();
private:
Ui::MyAudio *ui;
QProcess *p;
};
#endif // MYAUDIO_H
main.c
#include "myaudio.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyAudio w;
w.show();
return a.exec();
}
MyAudio.c
#include "myaudio.h"
#include "ui_myaudio.h"
MyAudio::MyAudio(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyAudio)
{
ui->setupUi(this);
p = new QProcess(this);
}
MyAudio::~MyAudio()
{
delete ui;
}
//录音/结束
void MyAudio::on_pushButton_record_clicked()
{
if(p->state()==QProcess::Running)
{
//关闭
p->kill();
p->waitForFinished();
ui->pushButton_record->setText("录音");
}
else if(p->state()==QProcess::NotRunning)
{
QString cmd = QString("arecord");
QStringList args;
args<<"-d60"<<"-c1"<<"-r16000"<<"-twav"
<<"-fS16_LE"<<"test.WAV"<<"&";
p->start(cmd,args);
ui->pushButton_record->setText("停止");
}
}
//播放
void MyAudio::on_pushButton_play_clicked()
{
if(p->state()==QProcess::Running){
//关闭
p->kill();
p->waitForFinished();
ui->pushButton_record->setText("录音");
}
QString cmd = QString("aplay");
QStringList args;
args<<"test.WAV"<<"&";
p->start(cmd,args);
}
完整代码及配置文件:
文件链接:https://download.csdn.net/download/weixin_43793181/20335306
文件内容:
更多推荐
已为社区贡献1条内容
所有评论(0)