C

QMediaSessionController 类

QMediaSessionController 类用于控制设备上正在播放的当前媒体。 (技术预览) 更多...

头文件 #include <QMediaSessionController>
CMake find_package(Qt6 REQUIRED COMPONENTS AndroidAutomotiveMedia)
target_link_libraries(mytarget PRIVATE Qt6::AndroidAutomotiveMedia)
qmake QT += media
QtAndroidAutomotive 6.5
继承 QObject

公共类型

枚举PlaybackAction { NoAction, PlayAction, PauseAction, StopAction, SkipToNextAction, …, PositionAction }
标志PlaybackActions
枚举PlaybackState { NoState, PausedState, PlayingState, StoppedState, BufferingState, …, ErrorState }

公共函数

QMediaSessionController::PlaybackActionsavailableActions() const
floatbufferProgress() const
qint64duration() const
QMediaMetaDatametaData() const
qrealplaybackRate() const
QMediaSessionController::PlaybackStateplaybackState() const
qint64position() const

公共槽

void暂停()
void播放()
voidsetPlaybackRate(qreal rate)
voidsetPosition(qint64 position)
void跳转到下一首()
void跳转到上一首()
void停止()

信号

详细描述

QMediaSessionController 提供了控制媒体播放和获取媒体信息(如元数据)的功能。

当系统通知有新的媒体管理器被添加或删除时,由 QMediaSessionManager 实例化此类。要访问控制器,请使用 QMediaSessionManager::activeControllers()。

成员类型文档

枚举 QMediaSessionController::PlaybackAction
标志 QMediaSessionController::PlaybackActions

这些标志表示控制器可以执行的操作,并用于在媒体不支持该操作时隐藏UI控件。例如,如果媒体支持播放、暂停和停止操作。

常量描述
QMediaSessionController::NoAction0未知或不定义的操作
QMediaSessionController::PlayAction1 << 0媒体可播放
QMediaSessionController::PauseAction1 << 1媒体可暂停
QMediaSessionController::StopAction1 << 2媒体可停止
QMediaSessionController::SkipToNextAction1 << 3媒体支持跳转至下一媒体
QMediaSessionController::SkipToPreviousAction1 << 4媒体支持跳转至上一媒体
QMediaSessionController::PlaybackRateAction1 << 5媒体支持更改播放速率
QMediaSessionController::PositionAction1 << 6媒体支持更改当前播放位置

注意:对于Android,PlaybackRateAction操作需要最低SDK版本31(Android 12)

PlaybackActions类型是< Portugal>QFlags<PlaybackAction>的typedef。它存储了PlaybackAction值的OR组合。

枚举 QMediaSessionController::PlaybackState

此枚举指定控制器可以具有的状态。例如,如果媒体正在播放、暂停等。

常量描述
QMediaSessionController::NoState0媒体处于未知状态或无法获取状态
QMediaSessionController::PausedState1媒体已暂停
QMediaSessionController::PlayingState2媒体正在播放
QMediaSessionController::StoppedState3媒体已停止
QMediaSessionController::BufferingState4媒体正在缓冲
QMediaSessionController::SkippingToNextState5媒体正在跳转至下一曲目
QMediaSessionController::SkippingToPreviousState6媒体正在跳转至上一曲目
QMediaSessionController::ErrorState7媒体或检索媒体状态时发生错误

成员函数文档

QMediaSessionController::PlaybackActions QMediaSessionController::availableActions() const

返回媒体的可用的操作

[signal] void QMediaSessionController::availableActionsChanged()

当媒体的可用的操作发生变化时,此信号会被发出。

float QMediaSessionController::bufferProgress() const

返回当前媒体播放缓冲区填充的比例,从0.0(空)到1.0(满)。

[signal] void QMediaSessionController::bufferProgressChanged()

当媒体缓冲进度发生变化时,此信号会被发出。

qint64 QMediaSessionController::duration() const

返回媒体的持续时间(以毫秒计)。也可以从QMediaMetaData::Duration获取。

[signal] void QMediaSessionController::durationChanged()

当媒体持续时间发生变化时,此信号会被发出。

QMediaMetaData QMediaSessionController::metaData() const

返回媒体的元数据

[信号] void QMediaSessionController::metaDataChanged()

当媒体metaData发生变化时,将发出此信号。

[槽函数] void QMediaSessionController::pause()

暂停媒体。

[槽函数] void QMediaSessionController::play()

开始播放或继续播放媒体。

qreal QMediaSessionController::playbackRate() const

返回媒体的播放速率。1表示媒体按正常速率播放。2表示媒体以两倍速率播放。负值表示媒体正在倒放。

如果无法检索到有效的播放速率,返回1

另请参阅QMediaSessionController::setPlaybackRate(qreal rate)。

[信号] void QMediaSessionController::playbackRateChanged()

当媒体播放速率改变时,将发出此信号。

QMediaSessionController::PlaybackState QMediaSessionController::playbackState() const

返回媒体的播放状态

如果状态未知或无法检索到有效状态,返回QMediaSessionController::NoState

[信号] void QMediaSessionController::playbackStateChanged()

当媒体播放状态改变时,将发出此信号。

qint64 QMediaSessionController::position() const

以毫秒为单位返回媒体的当前播放位置。

如果无法检索到有效位置,返回0

另请参阅QMediaSessionController::setPosition(qint64 position)。

[信号] void QMediaSessionController::positionChanged()

当媒体播放位置改变时,将发出此信号。

在媒体播放时,每100毫秒发出一次。

[槽函数] void QMediaSessionController::setPlaybackRate(qreal rate)

设置媒体的播放
  速率。

在Android上,传递速率
  为0将被忽略,因为它不是有效的。

另请参阅playbackRate

[槽函数] void QMediaSessionController::setPosition(qint64 position)

设置媒体播放的位置,单位为毫秒。

如果位置小于 0 或大于 duration,则该值会被忽略

另请参阅QMediaSessionController::position

[槽] void QMediaSessionController::skipToNext()

播放应用程序播放队列中的下一媒体。

[槽] void QMediaSessionController::skipToPrevious()

播放应用程序播放队列中的上一媒体。

[槽] void QMediaSessionController::stop()

停止媒体。

在特定Qt许可证下可用。
了解更多信息。