QMediaPlaylist :: addMedia()对于不存在的文件返回true

时间:2015-04-13 10:22:07

标签: c++ qt qtmultimedia

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

  

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

但即使该文件不存在,此代码也会显示为true:

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

如果文件不存在,怎么可以认为操作成功?

1 个答案:

答案 0 :(得分: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;
}

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