1

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

我只是想要它,这样当我单击一个图标时,它会弹出一个窗口,我可以在其中选择多个视频文件,并将这些文件附加到 QMediaplaylist。

我已经完成了多项选择部分。但我无法弄清楚如何使用 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 
4

1 回答 1

2

您必须在QMediaContentusing中转换每个路径QUrl::fromLocalFile()

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);
于 2018-12-27T23:24:37.730 回答