1766|1

156

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【基于树莓派400的图像识别归类&运动检测&模拟信号处理系统第四帖】尝试做个MP3播... [复制链接]

 

      这个播放器呢原本是对音频做频谱信号分析用的,后面发现项目其实不一定用得上,于是乎就做了个小小的,简单的音乐播放器,用madplay实现,就当作是项目中的娱乐小插曲。MP3播放器非常简单,可以用ffmjpeg-streamer或者madplay实现:


然后在qt程序中也可以通过system()接口实现调用外部程序,再结合文件夹路径递归操作接口,就能做一个简单的MP3播放器:

  • static QStringList fileNames_temp , fileNames_norepeat;
  • void MainWindow::on_PB_MP3_SELECT_clicked()
  • {
  • QFileDialog *fileDialog = new QFileDialog(this);
  • fileDialog->setWindowTitle(QStringLiteral("Select mp3 file(s)"));
  • fileDialog->setDirectory("./");
  • fileDialog->setNameFilter(tr("File(*.mp3*)"));
  • fileDialog->setFileMode(QFileDialog::ExistingFiles);
  • fileDialog->setViewMode(QFileDialog::Detail);
  • QStringList fileNames;
  • if (fileDialog->exec())
  • {
  • fileNames = fileDialog->selectedFiles();
  • ui->LE_MP3->setText(fileNames[0]);
  • }
  • fileNames_temp += fileNames;
  • for(int i = 0; i < fileNames_temp.length(); i++)
  • {
  • if(!fileNames_norepeat.contains(fileNames_temp[i]))
  • {
  • fileNames_norepeat.append(fileNames_temp[i]);
  • }
  • }
  • fileNames_temp.clear();
  • fileNames_temp = fileNames_norepeat;
  • ui->listWidget->clear();
  • ui->listWidget->addItems(fileNames_norepeat);
  • delete fileDialog;
  • }
  • void MainWindow::on_PB_MP3_PLAY_clicked()
  • {
  • system("killall -KILL madplay &");
  • sleep(1);
  • QString qs1 = "madplay " + ui->LE_MP3->text() + " &";
  • system(qs1.toLatin1().data());
  • on_PB_MP3_PAUSE_clicked_1();
  • }
  • void MainWindow::on_PB_MP3_PAUSE_clicked_1()
  • {
  • system("killall -CONT madplay &");
  • ui->PB_MP3_PAUSE->setText("PAUSE");
  • disconnect(ui->PB_MP3_PAUSE,SIGNAL(clicked()),this,SLOT(on_PB_MP3_PAUSE_clicked_1()));
  • connect(ui->PB_MP3_PAUSE,SIGNAL(clicked()),this,SLOT(on_PB_MP3_PAUSE_clicked()));
  • }
  • void MainWindow::on_PB_MP3_PAUSE_clicked()
  • {
  • system("killall -STOP madplay &");
  • ui->PB_MP3_PAUSE->setText("CONT");
  • disconnect(ui->PB_MP3_PAUSE,SIGNAL(clicked()),this,SLOT(on_PB_MP3_PAUSE_clicked()));
  • connect(ui->PB_MP3_PAUSE,SIGNAL(clicked()),this,SLOT(on_PB_MP3_PAUSE_clicked_1()));
  • }
  • void MainWindow::on_listWidget_clicked(const QModelIndex &index)
  • {
  • ui->LE_MP3->setText(ui->listWidget->currentItem()->text());
  • }
  • void MainWindow::on_listWidget_doubleClicked(const QModelIndex &index)
  • {
  • ui->LE_MP3->setText(ui->listWidget->currentItem()->text());
  • on_PB_MP3_PLAY_clicked();
  • }
  • void MainWindow::on_PB_MP3_PREV_clicked()
  • {
  • if(ui->listWidget->currentItem() != nullptr)
  • {
  • int index = ui->listWidget->currentRow();
  • if(index > 0)
  • index --;
  • if(index < 0)
  • index = ui->listWidget->count() - 1;
  • ui->listWidget->setCurrentRow(index);
  • ui->LE_MP3->setText(ui->listWidget->currentItem()->text());
  • on_PB_MP3_PLAY_clicked();
  • }
  • }
  • void MainWindow::on_PB_MP3_NEXT_clicked()
  • {
  • if(ui->listWidget->currentItem() != nullptr)
  • {
  • int index = ui->listWidget->currentRow();
  • index ++;
  • if(index >= ui->listWidget->count())
  • index = 0;
  • ui->listWidget->setCurrentRow(index);
  • ui->LE_MP3->setText(ui->listWidget->currentItem()->text());
  • on_PB_MP3_PLAY_clicked();
  • }
  • }

 

播放器加载失败: 未检测到Flash Player,请到安装
e105994a816ccee8dfa9f0d13f4af5ea

 

最新回复

用madplay实现MP3播放器效果还行   详情 回复 发表于 2022-10-25 08:41
点赞 关注
 
 

回复
举报

6893

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

用madplay实现MP3播放器效果还行

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
福禄克有奖直播:高精度测温赋能电子制造 报名中!
直播时间:2025年2月28日(周五)上午10:00
直播主题:高精度测温赋能电子制造
小伙伴们儿快来报名直播吧~好礼等你拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表