QIviPlayQueue 类
为 QIviMediaPlayer 提供播放队列。 更多...
头文件 | #include <QIviPlayQueue> |
qmake | QT += ivimedia |
实例化自 | PlayQueue |
继承自 | QAbstractListModel |
公共类型
枚举 | LoadingType { FetchMore, DataChanged } |
枚举 | Roles { NameRole, TypeRole, ItemRole } |
属性
|
|
公共函数
T | at(int i) const |
int | chunkSize() const |
int | currentIndex() const |
int | fetchMoreThreshold() const |
QVariant | get(int i) const |
void | insert(int index, const QVariant &variant) |
QIviPlayQueue::LoadingType | loadingType() const |
void | move(int cur_index, int new_index) |
void | remove(int index) |
void | setChunkSize(int chunkSize) |
void | setCurrentIndex(int currentIndex) |
void | setFetchMoreThreshold(int fetchMoreThreshold) |
void | setLoadingType(QIviPlayQueue::LoadingType loadingType) |
重写的公共函数
virtual bool | canFetchMore(const QModelIndex &parent) const override |
virtual QVariant | data(const QModelIndex &index, int role) const override |
virtual void | fetchMore(const QModelIndex &parent) override |
virtual QHash<int, QByteArray> | roleNames() const override |
virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
信号
void | chunkSizeChanged(int chunkSize) |
void | countChanged() |
void | currentIndexChanged(int currentIndex) |
void | fetchMoreThresholdChanged(int fetchMoreThreshold) |
void | fetchMoreThresholdReached() const |
void | loadingTypeChanged(QIviPlayQueue::LoadingType loadingType) |
受保护的函数
QIviPlayQueue(QIviMediaPlayer *parent = nullptr) |
详细描述
QIviPlayQueue 是一个模型,用于控制 QIviMediaPlayer 对 QIviPlayableItems 的播放顺序。
它提供了添加新项和管理现有项的机制,例如通过删除或移动它们。
QIviPlayQueue 不能通过自身实例化,只能通过 QIviMediaPlayer 获取。
此模型中包含以下角色
角色名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 可播放项的名称。例如,曲目名称或网络流名称。 |
type | 字符串 | 可播放项的类型。例如,"track" 或 "web-stream" |
item | QIviPlayableItem | 可播放项实例。可用于访问特定类型的属性,例如艺术家。 |
成员类型文档
枚举 QIviPlayQueue::LoadingType
常量 | 值 | 描述 |
---|---|---|
QIviPlayQueue::FetchMore | 0 | 这是默认值,如果不知道列表的最终大小(例如无限列表),则可以使用。列表将检测它接近结尾(fetchMoreThreshold),然后使用 canFetchMore 和 fetchMore 获取下一块数据。此方法的缺点是,由于数据最终大小未知,无法显示动态滚动条指示器,该指示器的大小取决于列表的内容。另一个问题是快速滚动,因为数据可能不会及时到来,滚动停止。这可以通过 fetchMoreThreshold 属性进行调整。 |
QIviPlayQueue::DataChanged | 1 | 对于此加载类型,您需要知道列表中有多少项,因为将创建虚拟项,并且尽管数据尚未准备好显示,用户仍然可以开始滚动。类似于 FetchMore,数据也以块的形式加载。在这里可以安全地使用滚动指示器。委托需要支持此方法,因为它在第一次创建时没有内容。 |
枚举 QIviPlayQueue::Roles
常量 | 值 | 描述 |
---|---|---|
QIviPlayQueue::NameRole | Qt::DisplayRole | 可播放项的名称。例如,曲目名称或网络流名称。 |
QIviPlayQueue::TypeRole | Qt::UserRole | 可播放项的类型。例如,"track" 或 "web-stream" |
QIviPlayQueue::ItemRole | 257 | 可播放项实例。可用于访问特定类型的属性,例如艺术家。 |
属性文档
chunkSize : int
保持从后端接口请求的行数。
可以使用该属性来调整加载性能。
更大的块意味着更少的后端调用和潜在的 IPC,但需要传输更多数据,并且可能需要更长的等待时间才能完成请求。
访问函数
int | chunkSize() const |
void | setChunkSize(int chunkSize) |
通知信号
void | chunkSizeChanged(int chunkSize) |
count : const int
保持此模型中的当前行数。
访问函数
virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
通知信号
void | countChanged() |
currentIndex : int
保持当前活动曲目的索引。
使用 get 方法检索有关活动曲目的更多信息。
访问函数
int | currentIndex() const |
void | setCurrentIndex(int currentIndex) |
通知信号
void | currentIndexChanged(int currentIndex) |
fetchMoreThreshold : int
在加载下一个数据块之前,保留行增量到末尾
此属性可用于微调加载性能。当达到阈值时,将从后端请求下一行数据块。可以使用 chunkSize 属性定义要获取的行数。
阈值定义了缓存行结束前的行数。
注意:此属性仅在 loadingType 设置为 FetchMore 时使用。
访问函数
int | fetchMoreThreshold() const |
void | setFetchMoreThreshold(int fetchMoreThreshold) |
通知信号
void | fetchMoreThresholdChanged(int fetchMoreThreshold) |
loadingType : QIviPlayQueue::LoadingType
保留当前使用的用于加载数据的加载类型。
注意:更改此属性时,内容将被重置。
访问函数
QIviPlayQueue::LoadingType | loadingType() const |
void | setLoadingType(QIviPlayQueue::LoadingType loadingType) |
通知信号
void | loadingTypeChanged(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.的商标。所有其他商标均为其各自所有者的财产。