文档说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"));
如果文件不存在,怎么可以认为操作成功?
答案 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对我来说是一个谜。