QMediaPlaylist :: CurrentItemOnce不产生所需的结果

时间:2019-05-28 21:33:21

标签: c++ qt

我正在尝试使用QMediaPlayerQMediaPlayList在媒体播放器中实现循环机制。使用这些播放模式时:

QMediaPlayList::Sequential
QMediaPlayList::Loop
QMediaPlayList::Random

它能按我预期的那样工作,这意味着下一个或随机的媒体开始播放。

但是对于下面的两个

QMediaPlayList::CurrentItemOnce
QMediaPlayList::CurrentItemInLoop

不是。

问题在于,使用这两种模式时,每当我单击“下一步”时  按钮,该按钮应通过调用QMediaPlayList::next来更改当前播放的下一媒体,但实际上并没有任何改变。

预先感谢

2 个答案:

答案 0 :(得分:0)

根据nextIndex(在使用QMediaPlaylist::next()时可能会调用它的文档),返回的索引值将取决于播放列表的大小,播放列表中的当前位置以及播放模式。

internals of Qt中进一步实施之后,您可以看到QMediaPlaylist::CurrentItemOnce的下一个索引是-1,而QMediaPlaylist::CurrentItemInLoop的下一个索引是当前索引。

因此行为是一致的。

答案 1 :(得分:0)

看看next的正式文档,它由nextIndex调用,我认为这正是正在发生的情况。

因此,如果要转到下一个项目,请更改播放模式,然后再调用下一个并恢复原始播放模式。

overflow-x: hidden;

scrollbar-width: none;

有关血腥细节,请参见here