如何将媒体文件添加到 QMediaPlaylist

How do I add media files to QMediaPlaylist?

本文关键字:QMediaPlaylist 添加 媒体文件      更新时间:2023-10-16

我是Qt和C++的初学者,并制作了一个示例媒体播放器。我只想使用 QMedia播放列表类创建一个播放列表。

我只是想要它,以便当我单击一个图标时,它会弹出一个窗口,我可以在其中选择多个视频文件,并使用 QMedia播放列表附加这些文件。

我已经完成了多项选择部分。但是我无法弄清楚如何使用QMediaPlaylist附加这些文件。

playlist = new QMediaPlaylist(player);
QStringList filenames = QFileDialog::getOpenFileNames(this,"Open a File","","Video File(*.*)");
playlist->addMedia(filenames); //error has occurred in this line 
player->setPlaylist(playlist);
on_actionPlay_triggered();

语义问题

  error:no matching member function for call to 'addMedia"
  qmediaplaylist.h:90:10:note:candidate function not viable:no known 
  conversion from 'QStringList' to const QMediaContent' for 1st argument 
  qmediaplaylist.h:91:10:note:candidate function not viable:no known 
  conversion from 'QStringList' to 'const QList<QMediaContent>'for 1st 
  argument 

您必须使用 QUrl::fromLocalFile() 转换QMediaContent中的每个路径:

playlist = new QMediaPlaylist(player);
QStringList filenames = QFileDialog::getOpenFileNames(this, "Open a File","","Video File(*.*)");
for(const QString & filename: filenames){
    playlist->addMedia(QMediaContent(QUrl::fromLocalFile(filename)));
}
player->setPlaylist(playlist);