Ai
1 Star 0 Fork 3

huachang/QtMusicPlayer

forked from Singtren/QtMusicPlayer 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
playlist.cpp 1.70 KB
一键复制 编辑 原始数据 按行查看 历史
unknown 提交于 2021-10-22 01:02 +08:00 . save
#include "playlist.h"
#include <QUrl>
#include <QFile>
PlayList::PlayList(QTableWidget *tb, QObject *parent):
QMediaPlaylist(parent), tb(tb)
{
}
void PlayList::append(Song song)
{
songList.append(song);
addMedia(QUrl(song.url));
songList.wirteToTable(tb);
}
void PlayList::appendAndPlay(Song song)
{
append(song);
this->setCurrentIndex(songList.size() - 1);
songList.wirteToTable(tb);
emit wantPlay();
}
void PlayList::appendSongList(const SongList &list)
{
for (int i = 0; i < list.size(); i++) {
append(list[i]);
}
songList.wirteToTable(tb);
}
void PlayList::deleteByIndex(int n)
{
this->removeMedia(n);
songList.removeAt(n);
songList.wirteToTable(tb);
}
void PlayList::clearList()
{
this->clear();
songList.clear();
tb->clear();
tb->setHorizontalHeaderLabels({"歌名","歌手"});
}
void PlayList::loadList(const SongList &list)
{
clearList();
appendSongList(list);
}
void PlayList::saveInFile(QString path)
{
QFile file(path);
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out << (QList<Song>)songList;
file.close();
}
Song &PlayList::getSongByIndex(int n)
{
static Song err("", "", QUrl(), -1);
if (n < 0 || n >= songList.size())
return err;
return songList[n];
}
Song &PlayList::getCurrentSong()
{
static Song err("", "", QUrl(), -1);
if (currentIndex() >= 0) {
return songList[currentIndex()];
} else {
return err;
}
}
Song &PlayList::getSongById(unsigned int id) {
static Song err("", "", QUrl(), -1);
for (int i = 0; i < songList.size(); i++) {
if (songList[i].id == id)
return songList[i];
}
return err;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/chang_devel/qt-music-player.git
git@gitee.com:chang_devel/qt-music-player.git
chang_devel
qt-music-player
QtMusicPlayer
master

搜索帮助