1

文档说 QMediaPlaylist::addMedia 如果失败则返回 false :

bool QMediaPlaylist::addMedia(const QMediaContent & content) 将媒体内容附加到播放列表。如果操作成功返回true,否则返回false。

但是即使文件不存在,这段代码也会打印出来:

QMediaPlayer *player = new QMediaPlayer;
QMediaPlaylist *playlist = new QMediaPlaylist(player);
qDebug() << playlist->addMedia(QUrl("this file doesn't exist.mp4"));

如果文件不存在,如何认为操作成功?

4

1 回答 1

1

进入 Qt 源代码后,我看到 QMediaPlaylist::addMedia() 调用QMediaNetworkPlaylistProvider::addMedia(),它总是返回 true:

bool QMediaPlaylist::addMedia(const QMediaContent &content)
{
    return d_func()->control->playlistProvider()->addMedia(content);
}

bool QMediaNetworkPlaylistProvider::addMedia(const QMediaContent &content)
{
    Q_D(QMediaNetworkPlaylistProvider);

    int pos = d->resources.count();

    emit mediaAboutToBeInserted(pos, pos);
    d->resources.append(content);
    emit mediaInserted(pos, pos);

    return true;
}

虽然为什么它需要返回一个总是正确的布尔值对我来说是个谜。

于 2015-04-14T12:53:22.583 回答