带有QMediaPlaylist的播放列表在QT中

Playlist with QMediaPlaylist in QT

本文关键字:QT 播放列表 QMediaPlaylist 带有      更新时间:2023-10-16

我的 QT 编写的播放列表有问题。

我有一个小函数来加载mp3文件,并使用以下代码在我的播放列表中打印这首歌的名称:

void MainWindow::on_addButton_clicked()
{
    QString files = QFileDialog::getOpenFileName(this, tr("Open Files"), "QString()", tr("Audio Files (*.mp3)"));
    qDebug() << player->errorString();
    player->setMedia(QUrl::fromLocalFile(files));
    player->setVolume(ui->volumeSlider->value());
    on_playButton_clicked();
    foreach (QString filePath, files) {
        QList<QStandardItem*> items;
        items.append(new QStandardItem(QDir(filePath).dirName()));
        items.append(new QStandardItem(filePath));
        playListModel->appendRow(items);
        playlist->addMedia(QUrl(filePath));
    }
}

使用此代码,我遇到了一个问题,即我的播放列表在 1 行中仅包含 1 个字母。当我将QString更改为QStringList(这将起作用)时,我收到一个错误:

error: conversion from ‘QString’ to non-scalar type ‘QStringList’ requested
     QStringList files = QFileDialog::getOpenFileName(this, tr("Open Files"), "QString()", tr("Audio Files (*.mp3)"));

如何更改它来解决我的问题?第二个问题是我得到带有歌曲名称的完整目录名称,我只想得到歌曲名称。

我会很高兴得到任何帮助。

使用 getOpenFileNames() 代替 getOpenFileName()