天嵌 ARM开发社区

 找回密码
 注册
查看: 2284|回复: 11

mp3播放下一首,怎么没反应啊?(怎样实现将当前播放的文件与列表文件比较,播下一首呢

[复制链接]
bjhou2008 发表于 2012-3-28 22:38:18 | 显示全部楼层 |阅读模式
fileNames = dialog.selectedFiles();播放器正在播放选中的歌曲,
QStringList names = dir.entryList();获得列表
      QString path1;
      path1=newnames.at(3);
execl("madplay","madplay",path1.toStdString().c_str(),NULL);
不行啊,没反应。大侠们帮帮忙啊!
 楼主| bjhou2008 发表于 2012-3-29 09:33:19 | 显示全部楼层
QStringList names = dir.entryList();
       QStringList newnames;
          newnames=names.filter(".mp3");
QString path1;
      path1=newnames.at(3);
execl("madplay","madplay",path1.toStdString().c_str(),NULL);
可以这样写吧,path1应该是播放列表中的第4个吧,那怎么没反应呢?
TQ-lkp 发表于 2012-3-29 12:05:15 | 显示全部楼层
把path1的内容打印出来看下吧
这个东西没啥难的,:Q
ysy8727393 发表于 2012-3-29 14:06:02 | 显示全部楼层
楼主是基于什么做的? 分享看看啊,,,
 楼主| bjhou2008 发表于 2012-3-29 14:57:19 | 显示全部楼层
不好意思,没问清楚。

path = dialog.selectedFiles()[0];我使用这个,选择的歌曲名字,
QStringList newnames = dir.entryList();使用这个,获得播放列表

我其实想问:怎样使用
index = newnames.indexOf(path);
index--;
path=newnames.at(index);
知道正在播放歌曲,在播放列表中的次序:第一个还是第二个,第三个?就是index的值怎么获得的?我按上面这样设置编译一堆错误,
error: assignment of function 'char* index(const char*, int)'
error: cannot convert 'int' to 'char* ()(const char*, int)throw ()' in assignment
好像不该这么用啊,该怎么用?大侠们,帮帮忙啊。。。。。。。
 楼主| bjhou2008 发表于 2012-3-29 15:09:51 | 显示全部楼层
QString path;是选中的播放歌曲名字
index = newnames.indexOf(path);该怎么修改,好像语法有问题?获得选中播放歌曲在播放列表中的位置。
 楼主| bjhou2008 发表于 2012-3-29 15:23:05 | 显示全部楼层
我是基于2440板子和qt4.5做的,本来想用别人的,老是有问题,就自己做了。现在还没做完,刚刚能实现播放暂停,和选歌
 楼主| bjhou2008 发表于 2012-3-30 08:47:56 | 显示全部楼层

QStringList中,怎样使用.indexOf获得正在播放歌曲,在播放列表中的次序?

path = dialog.selectedFiles()[0];我使用这个,选择的歌曲名字,
QStringList newnames = dir.entryList();使用这个,获得播放列表

我想问:怎样使用
index = newnames.indexOf(path);
index--;
path=newnames.at(index);
知道正在播放歌曲,在播放列表中的次序:第一个还是第二个,第三个?就是index的值怎么获得的?我按上面这样设置编译一堆错误,
error: assignment of function 'char* index(const char*, int)'
error: cannot convert 'int' to 'char* ()(const char*, int)throw ()' in assignment
好像不该这么用啊,该怎么用?楼主,大侠们,帮帮忙啊。。。
 楼主| bjhou2008 发表于 2012-3-30 10:37:37 | 显示全部楼层
QString path;
TQ-lkp 发表于 2012-3-30 11:26:45 | 显示全部楼层
给你说个复杂点的方法:
使用 hash表存储歌曲名和播放顺序
QHash<QString, int> hash;
将从
path = dialog.selectedFiles()[0];我使用这个,选择的歌曲名字,
QStringList newnames = dir.entryList();使用这个,获得播放列表
中的所有歌曲添加到hash表中。
播放时根据歌曲名来查找id就知道是播放的第几个了
另外,警告楼主:同样的问题请勿重复发帖,否则会做相应的处罚!
 楼主| bjhou2008 发表于 2012-3-30 12:30:32 | 显示全部楼层
首先谢谢版主,不重复发了:L。我没看懂啊,

我放了4首mp3在工程文件中,按名字排列,1.mp3,  2.mp3, 3.mp3,  4.mp3
我随便选中一首播放,path = dialog.selectedFiles()[0];
Path为歌曲名字,播放函数调用path.
要播下一首怎么给path赋值啊?
QStringList newnames = dir.entryList();这是播放列表
 楼主| bjhou2008 发表于 2012-3-30 12:39:16 | 显示全部楼层
版主说的,使用 hash表存储歌曲名和播放顺序,QHash<QString, int> hash;

我的歌曲名是随机选的,path = dialog.selectedFiles()[0];如果,我只选一首歌进行播放,那怎么存储全部歌曲名啊?
播放列表已经通过QStringList newnames = dir.entryList();获得了

播放时根据歌曲名来查找id就知道是播放的第几个了。-------这句也不懂,如果我选了了一首歌,怎么查id啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 09:20 , Processed in 1.034113 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表