首先最基本的播放歌曲代码应该就是:
QMediaPlayer *music = new QMediaPlayer(this);//初始化音乐
QMediaPlaylist *playlist = new QMediaPlaylist(this);//初始化播放列表
playlist->setPlaybackMode(QMediaPlaylist::Loop);//设置播放模式(顺序播放,单曲循环,随机播放等)
playlist->addMedia(QUrl::fromLocalFile("D:/xx/yy/mm.mp3"));//添加歌曲,这里添加的是歌曲的路径
playlist->addMedia(QUrl::fromLocalFile("D:/xx/yy/mm2.mp3"));//添加歌曲,这里添加的是歌曲的路径
music->setPlaylist(playlist); //设置播放列表
music->play();//播放歌曲
这样就能按播放列表来播放了
然后playlist里面的歌曲是看不到的,就需要一个列表来显示歌曲,我用的是QListWidget,这样的话,只需要把列表项与playlist里面的歌曲对应上就可以了,然后要保存歌曲,数据库自然就少不了了,可以用Qt自带的数据库QSQLITE,然后创建数据库和表,写个函数
static bool CreatConnection()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");//建库
db.setDatabaseName("mymusic.db");//给数据库起名字
if(!db.open())
{
return false;
}
QSqlQuery query;
query.exec(QString("create table LocalMusic (id int,MusicName varchar,FileName varchar, primary key(id,MusicName,FileName))"));//本地音乐列表数据,把歌曲名和歌曲路径给存起来
return true;
}
在main函数中先执行这个函数,创建个数据库即可。
添加歌曲:
QListWidget *list = new QListWidget(this);
QSqlQuery query;
QStringList list=QFileDialog::getOpenFileNames(this,QString::fromLocal8Bit("文
件"),currentFileName[1],QString::fromLocal8Bit("音频文件(*.mp3)"));//用个文件登陆框来选择.mp3文件,包括多个文件
if(!list.isEmpty()){
for(int i=0;i<list.size();i++){
QString path=QDir::toNativeSeparators(list.at(i));
playlist->addMedia(QUrl::fromLocalFile(path));
QString Name=path.split("\\").last();
QListWidgetIt