qt6.4.2真的删除了QMediaPlaylist类吗,我下载了QMultimedia模块里没有了
已弃用
使用子线程进行QMediaPlayer播放器制作
不知为何我的Qt无法对QMediaPlayer对象设置QMEdiaPlayerList,只有
m_pMediaPlayer->set4Playlist(&m_MediaPlayerList);(但不能通过编译)
没有setPlaylist( )函数,但是开发文档中有。
于是通过QMediaPlayer内部状态的改变来进行循环播发
经过查阅资料,目前在Qt6.4.2版本中,确实已经删除了QMediaPlaylist类。如果您需要使用类似的功能,可以考虑使用QMediaContent或者自己实现一个列表类来保存媒体文件。以下是一个示例:
class MyPlaylist : public QObject
{
Q_OBJECT
public:
explicit MyPlaylist(QObject *parent = nullptr) : QObject(parent) {}
void addMedia(const QUrl &url)
{
m_mediaList.append(url);
}
void clear()
{
m_mediaList.clear();
}
int mediaCount() const
{
return m_mediaList.count();
}
QUrl mediaUrl(int index) const
{
if (index >= 0 && index < m_mediaList.count()) {
return m_mediaList.at(index);
}
return QUrl();
}
private:
QList<QUrl> m_mediaList;
};
在使用时,可以类似于以下方式添加媒体文件:
MyPlaylist *playlist = new MyPlaylist;
playlist->addMedia(QUrl("file:///path/to/music1.mp3"));
playlist->addMedia(QUrl("file:///path/to/music2.mp3"));
QMediaPlayer *player = new QMediaPlayer;
player->setPlaylist(playlist);
player->play();
另外,还需要确保添加了multimedia模块,以及安装了对应的解码器,例如LAVFilters。
最后,建议在.pro文件中添加multimedia模块:
QT += multimedia