1

ドキュメントによると、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"));

ファイルが存在しない場合、操作が成功したと見なすにはどうすればよいですか?

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;
}

常に true である bool を返す必要がある理由は、私には謎です。

于 2015-04-14T12:53:22.583 に答える