QIviPlayQueue 类

QIviMediaPlayer 提供播放队列。 更多...

头文件 #include <QIviPlayQueue>
qmakeQT += ivimedia
实例化自 PlayQueue
继承自 QAbstractListModel

公共类型

枚举LoadingType { FetchMore, DataChanged }
枚举Roles { NameRole, TypeRole, ItemRole }

属性

公共函数

Tat(int i) const
intchunkSize() const
intcurrentIndex() const
intfetchMoreThreshold() const
QVariantget(int i) const
voidinsert(int index, const QVariant &variant)
QIviPlayQueue::LoadingTypeloadingType() const
voidmove(int cur_index, int new_index)
voidremove(int index)
voidsetChunkSize(int chunkSize)
voidsetCurrentIndex(int currentIndex)
voidsetFetchMoreThreshold(int fetchMoreThreshold)
voidsetLoadingType(QIviPlayQueue::LoadingType loadingType)

重写的公共函数

virtual boolcanFetchMore(const QModelIndex &parent) const override
virtual QVariantdata(const QModelIndex &index, int role) const override
virtual voidfetchMore(const QModelIndex &parent) override
virtual QHash<int, QByteArray>roleNames() const override
virtual introwCount(const QModelIndex &parent = QModelIndex()) const override

信号

voidchunkSizeChanged(int chunkSize)
voidcountChanged()
voidcurrentIndexChanged(int currentIndex)
voidfetchMoreThresholdChanged(int fetchMoreThreshold)
voidfetchMoreThresholdReached() const
voidloadingTypeChanged(QIviPlayQueue::LoadingType loadingType)

受保护的函数

QIviPlayQueue(QIviMediaPlayer *parent = nullptr)

详细描述

QIviPlayQueue 是一个模型,用于控制 QIviMediaPlayer 对 QIviPlayableItems 的播放顺序。

它提供了添加新项和管理现有项的机制,例如通过删除或移动它们。

QIviPlayQueue 不能通过自身实例化,只能通过 QIviMediaPlayer 获取。

此模型中包含以下角色

角色名称类型描述
name字符串可播放项的名称。例如,曲目名称或网络流名称。
type字符串可播放项的类型。例如,"track" 或 "web-stream"
itemQIviPlayableItem可播放项实例。可用于访问特定类型的属性,例如艺术家。

成员类型文档

枚举 QIviPlayQueue::LoadingType

常量描述
QIviPlayQueue::FetchMore0这是默认值,如果不知道列表的最终大小(例如无限列表),则可以使用。列表将检测它接近结尾(fetchMoreThreshold),然后使用 canFetchMorefetchMore 获取下一块数据。此方法的缺点是,由于数据最终大小未知,无法显示动态滚动条指示器,该指示器的大小取决于列表的内容。另一个问题是快速滚动,因为数据可能不会及时到来,滚动停止。这可以通过 fetchMoreThreshold 属性进行调整。
QIviPlayQueue::DataChanged1对于此加载类型,您需要知道列表中有多少项,因为将创建虚拟项,并且尽管数据尚未准备好显示,用户仍然可以开始滚动。类似于 FetchMore,数据也以块的形式加载。在这里可以安全地使用滚动指示器。委托需要支持此方法,因为它在第一次创建时没有内容。

枚举 QIviPlayQueue::Roles

常量描述
QIviPlayQueue::NameRoleQt::DisplayRole可播放项的名称。例如,曲目名称或网络流名称。
QIviPlayQueue::TypeRoleQt::UserRole可播放项的类型。例如,"track" 或 "web-stream"
QIviPlayQueue::ItemRole257可播放项实例。可用于访问特定类型的属性,例如艺术家。

属性文档

chunkSize : int

保持从后端接口请求的行数。

可以使用该属性来调整加载性能。

更大的块意味着更少的后端调用和潜在的 IPC,但需要传输更多数据,并且可能需要更长的等待时间才能完成请求。

访问函数

intchunkSize() const
voidsetChunkSize(int chunkSize)

通知信号

voidchunkSizeChanged(int chunkSize)

count : const int

保持此模型中的当前行数。

访问函数

virtual introwCount(const QModelIndex &parent = QModelIndex()) const override

通知信号

voidcountChanged()

currentIndex : int

保持当前活动曲目的索引。

使用 get 方法检索有关活动曲目的更多信息。

访问函数

intcurrentIndex() const
voidsetCurrentIndex(int currentIndex)

通知信号

voidcurrentIndexChanged(int currentIndex)

fetchMoreThreshold : int

在加载下一个数据块之前,保留行增量到末尾

此属性可用于微调加载性能。当达到阈值时,将从后端请求下一行数据块。可以使用 chunkSize 属性定义要获取的行数。

阈值定义了缓存行结束前的行数。

注意:此属性仅在 loadingType 设置为 FetchMore 时使用。

访问函数

intfetchMoreThreshold() const
voidsetFetchMoreThreshold(int fetchMoreThreshold)

通知信号

voidfetchMoreThresholdChanged(int fetchMoreThreshold)

loadingType : QIviPlayQueue::LoadingType

保留当前使用的用于加载数据的加载类型。

注意:更改此属性时,内容将被重置。

访问函数

QIviPlayQueue::LoadingTypeloadingType() const
voidsetLoadingType(QIviPlayQueue::LoadingType loadingType)

通知信号

voidloadingTypeChanged(QIviPlayQueue::LoadingType loadingType)

成员函数文档

[protected] QIviPlayQueue::QIviPlayQueue(QIviMediaPlayer *parent = nullptr)

QIviMediaPlayer 实例 parent 创建播放队列。

[signal] void QIviPlayQueue::fetchMoreThresholdReached() const

每当达到 fetchMoreThreshold 并从后端请求新数据时,都会发出此信号。

template <typename T> T QIviPlayQueue::at(int i) const

返回索引 i 的项,并将其转换为模板类型 T。

[override virtual] bool QIviPlayQueue::canFetchMore(const QModelIndex &parent) const

重实现:QAbstractItemModel::canFetchMore(const QModelIndex &parent) const。

[override virtual] QVariant QIviPlayQueue::data(const QModelIndex &index, int role) const

重实现:QAbstractItemModel::data(const QModelIndex &index, int role) const。

[override virtual] void QIviPlayQueue::fetchMore(const QModelIndex &parent)

重实现:QAbstractItemModel::fetchMore(const QModelIndex &parent)。

QVariant QIviPlayQueue::get(int i) const

返回索引 i 的项。

此函数旨在从 QML 中使用。对于 C++,请使用 at()。

注意:此函数可以通过元对象系统和 QML 调用。请参阅 Q_INVOKABLE

void QIviPlayQueue::insert(int index, const QVariant &variant)

variant插入到位置index处。

如果后端不接受提供的项目,此操作将无任何操作。

注意:此函数可以通过元对象系统和 QML 调用。请参阅 Q_INVOKABLE

void QIviPlayQueue::move(int cur_index, int new_index)

将播放队列中位置为cur_index的项目移动到新位置new_index

注意:此函数可以通过元对象系统和 QML 调用。请参阅 Q_INVOKABLE

void QIviPlayQueue::remove(int index)

从播放队列中移除位置为index的项目。

注意:此函数可以通过元对象系统和 QML 调用。请参阅 Q_INVOKABLE

[override virtual] QHash<int, QByteArray> QIviPlayQueue::roleNames() const

重新实现:QAbstractItemModel::roleNames() const.

©2020 The Qt Company Ltd. 本文件中包含的文档贡献各自的版权归属。所提供的文档按照由自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。Qt和相应的标志是芬兰及/或其他国家/地区的The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。