fuchsia.media.sessions2

添加时间:7

协议

ActiveSession

fuchsia.media.sessions2/discovery.fidl 中定义

用于观看设备上当前活跃媒体会话的协议。

当前活动的媒体会话是最近的现有媒体会话 宣布“正在播放”状态(即使设备现在已暂停)。

WatchActiveSession

监控活动会话。系统会立即回复第一个请求 与当前活动会话相关联。始终让请求处于挂起状态 并在当前会话发生变化时给予回复。

请求

<空>

响应

名称类型
session SessionControl?

发现

fuchsia.media.sessions2/discovery.fidl 中定义

Discovery 会观察已发布的媒体会话的集合 并将客户端连接到这些服务

ConnectToSession

连接到 session_idSessionControl(如果存在)。丢弃 渠道。

请求

名称类型
session_id SessionId
session_control_request server_end<SessionControl>

WatchSessions

连接配置了给定选项的会话观察器。

请求

名称类型
watch_options WatchOptions
session_watcher SessionsWatcher

ObserverDiscovery

fuchsia.media.sessions2/discovery.fidl 中定义

ObserverDiscovery 会观察已发布的媒体会话的集合 并将客户端连接到它们进行观察,而无需播放控件。

ConnectToSession

连接到 session_idSessionObserver(如果存在)。丢弃 渠道。

请求

名称类型
session_id SessionId
session_request server_end<SessionObserver>

WatchSessions

连接配置了给定选项的会话观察器。

请求

名称类型
watch_options WatchOptions
sessions_watcher SessionsWatcher

玩家

fuchsia.media.sessions2/player.fidl 中定义

Player 是媒体播放器的句柄。不支持的命令包括 无运维。请查阅由 PlaybackCapabilities 发送,以了解哪个 命令都受支持。

BindVolumeControl

绑定到会话的音量控件,以便进行控制和通知。如果此方法 如以下代码中缺少 HAS_GAIN_CONTROL 标志所示: PlayerCapabilities,作为 volume_control_request 传递的频道句柄会关闭 。

请求

名称类型
volume_control_request server_end<fuchsia.media.audio/VolumeControl>

NextItem

将媒体移至下一项(例如,播放列表中的下一首歌曲)。如果此方法 如以下代码中缺少 CHANGE_TO_NEXT_ITEM 标志所示: PlayerCapabilities,则此方法不会执行任何操作。

请求

<空>

暂停

暂停播放并保持在媒体中的位置。如果此方法不受支持 由于 PlayerCapabilities 中缺少 PAUSE 标志,因此此方法不会执行任何操作。

请求

<空>

播放

播放媒体内容。此方法不受支持,如缺少 PLAY 所示 PlayerCapabilities 标志,则此方法不会执行任何操作。

请求

<空>

PrevItem

将媒体移至上一项。如果此方法 如以下代码中缺少 CHANGE_TO_PREV_ITEM 标志所示: PlayerCapabilities,则此方法不会执行任何操作。

请求

<空>

进度

寻找媒体中的特定位置。实施可免费 输入错误状态。position 是相对于媒体起始位置的偏移量。如果此方法不受支持 由于 PlayerCapabilities 中缺少 SEEK 标志,因此此方法不会执行任何操作。

请求

名称类型
position zx/Duration

SetPlaybackRate

设置媒体的播放速率。此操作不会更改播放模式。如果此方法 ,如以下视频中缺少 SET_PLAYBACK_RATE 标志所示: PlayerCapabilities,则此方法不会执行任何操作。

请求

名称类型
playback_rate float32

SetRepeatMode

将重复模式设置为任何受支持的重复模式。 此方法是否生效取决于 PlayerCapabilitiesrepeat_mode

  • 始终支持 OFF
  • GROUP 需要 REPEAT_GROUPS 功能,否则会被忽略。
  • SINGLE 需要 REPEAT_SINGLE 功能,否则会被忽略。

请求

名称类型
repeat_mode RepeatMode

SetShuffleMode

设置随机播放模式。如果此方法不受支持,如缺少 SHUFFLE 标志,则此方法不会执行任何操作。PlayerCapabilities

请求

名称类型
shuffle_on bool

SkipForward

以播放器的默认跳过量快进媒体。如果此方法不受支持 此方法(如 PlayerCapabilities 中缺少 SKIP_FORWARD 标志所示) 不会执行任何操作。

请求

<空>

SkipReverse

媒体按播放器的默认跳过量反向跳过。如果此方法 如 PlayerCapabilities 中缺少 SKIP_REVERSE 标志所示: 此方法不会执行任何操作。

请求

<空>

停止

停止播放。会话应关闭。

请求

<空>

WatchInfoChange

使用挂起的 get 模式获取净玩家信息变化。

请求

<空>

响应

名称类型
player_info_delta PlayerInfoDelta

PlayerControl

fuchsia.media.sessions2/player.fidl 中定义

媒体播放器的控件。PlayerCapabilities 表示 支持的协议。因为功能是动态的,客户无法 始终知道当方法调用到达服务时将支持哪些功能, 系统会直接忽略调用不受支持的方法。一般来说,客户端不应 除非玩家表示持续支持,否则方法可能有效。

BindVolumeControl

绑定到会话的音量控件,以便进行控制和通知。如果此方法 如以下代码中缺少 HAS_GAIN_CONTROL 标志所示: PlayerCapabilities,作为 volume_control_request 传递的频道句柄会关闭 。

请求

名称类型
volume_control_request server_end<fuchsia.media.audio/VolumeControl>

NextItem

将媒体移至下一项(例如,播放列表中的下一首歌曲)。如果此方法 如以下代码中缺少 CHANGE_TO_NEXT_ITEM 标志所示: PlayerCapabilities,则此方法不会执行任何操作。

请求

<空>

暂停

暂停播放并保持在媒体中的位置。如果此方法不受支持 由于 PlayerCapabilities 中缺少 PAUSE 标志,因此此方法不会执行任何操作。

请求

<空>

播放

播放媒体内容。此方法不受支持,如缺少 PLAY 所示 PlayerCapabilities 标志,则此方法不会执行任何操作。

请求

<空>

PrevItem

将媒体移至上一项。如果此方法 如以下代码中缺少 CHANGE_TO_PREV_ITEM 标志所示: PlayerCapabilities,则此方法不会执行任何操作。

请求

<空>

进度

寻找媒体中的特定位置。实施可免费 输入错误状态。position 是相对于媒体起始位置的偏移量。如果此方法不受支持 由于 PlayerCapabilities 中缺少 SEEK 标志,因此此方法不会执行任何操作。

请求

名称类型
position zx/Duration

SetPlaybackRate

设置媒体的播放速率。此操作不会更改播放模式。如果此方法 ,如以下视频中缺少 SET_PLAYBACK_RATE 标志所示: PlayerCapabilities,则此方法不会执行任何操作。

请求

名称类型
playback_rate float32

SetRepeatMode

将重复模式设置为任何受支持的重复模式。 此方法是否生效取决于 PlayerCapabilitiesrepeat_mode

  • 始终支持 OFF
  • GROUP 需要 REPEAT_GROUPS 功能,否则会被忽略。
  • SINGLE 需要 REPEAT_SINGLE 功能,否则会被忽略。

请求

名称类型
repeat_mode RepeatMode

SetShuffleMode

设置随机播放模式。如果此方法不受支持,如缺少 SHUFFLE 标志,则此方法不会执行任何操作。PlayerCapabilities

请求

名称类型
shuffle_on bool

SkipForward

以播放器的默认跳过量快进媒体。如果此方法不受支持 此方法(如 PlayerCapabilities 中缺少 SKIP_FORWARD 标志所示) 不会执行任何操作。

请求

<空>

SkipReverse

媒体按播放器的默认跳过量反向跳过。如果此方法 如 PlayerCapabilities 中缺少 SKIP_REVERSE 标志所示: 此方法不会执行任何操作。

请求

<空>

停止

停止播放。会话应关闭。

请求

<空>

出版商

fuchsia.media.sessions2/publisher.fidl 中定义

Publisher 会发布媒体播放器,以便用户发现和 由拥有相应权限的客户控制。

发布

请求

名称类型
player Player
registration PlayerRegistration

响应

名称类型
session_id SessionId

SessionControl

fuchsia.media.sessions2/discovery.fidl 中定义

控制媒体会话并查看其状态。

如果媒体会话停止,通道将关闭。

BindVolumeControl

绑定到会话的音量控件,以便进行控制和通知。

请求

名称类型
volume_control_request server_end<fuchsia.media.audio/VolumeControl>

NextItem

将媒体移至下一项(例如,播放列表中的下一首歌曲)。

请求

<空>

暂停

暂停播放并保持在媒体中的位置

请求

<空>

播放

播放媒体内容。

请求

<空>

PrevItem

将媒体移至上一项。

请求

<空>

进度

定位至媒体中的特定位置。实施可免费 输入错误状态。position 是相对于媒体起始位置的偏移量。

请求

名称类型
position zx/Duration

SetPlaybackRate

设置媒体的播放速率。这不会改变 播放模式。

请求

名称类型
playback_rate float32

SetRepeatMode

将重复模式设置为任何受支持的重复模式。

请求

名称类型
repeat_mode RepeatMode

SetShuffleMode

设置随机播放模式。

请求

名称类型
shuffle_on bool

SkipForward

以播放器的默认跳过量快进媒体。

请求

<空>

SkipReverse

媒体按播放器的默认跳过量反向跳过。

请求

<空>

停止

停止播放。会话应关闭。

请求

<空>

WatchStatus

监视会话状态。将请求设为挂起,以便在以下情况下收到回复: 会话状态会发生变化。第一个请求将会立即得到答复 当前状态

请求

<空>

响应

名称类型
session_info_delta SessionInfoDelta

SessionObserver

fuchsia.media.sessions2/discovery.fidl 中定义

查看媒体会话的状态。

如果媒体会话停止,通道将关闭。

WatchStatus

监视会话状态。将请求设为挂起,以便在以下情况下收到回复: 会话状态会发生变化。第一个请求将会立即得到答复 当前状态

请求

<空>

响应

名称类型
session_info_delta SessionInfoDelta

SessionsWatcher

fuchsia.media.sessions2/discovery.fidl 中定义

SessionsWatcher会观看已发布的会话集合。

SessionRemoved

从已注册的会话中移除会话时,由注册表服务调用 。

SessionsWatcher 必须回复我们确认已收到会话移除请求。 如果逾期未回复的观看者没有回复,则最终会断开连接。

请求

名称类型
session_id SessionId

响应

<空>

SessionUpdated

会话更新时,由注册表服务调用。首次连接时 系统将视需要多次调用此函数,以传达 。

SessionsWatcher 必须回复以确认收到会话信息增量。 如果逾期未回复的观看者没有回复,则最终会断开连接。

请求

名称类型
session_id SessionId
session_info_delta SessionInfoDelta

响应

<空>

结构体

ImageSizeVariant

fuchsia.media.sessions2/images.fidl 中定义

特定尺寸的图片变体。

字段类型说明默认
url fuchsia.url/Url 无默认设置
width uint32 无默认设置
height uint32 无默认设置

精英

ContentType 严格

类型:uint32

fuchsia.media.sessions2/player.fidl 中定义

播放的内容的类型,应设置为 适用的值。

名称说明
1

内容不符合使用任何其他值的条件。

2

不能算作音乐的纯音频内容。

3

不能作为电视节目或电影的纯视频或音频/视频内容。

4

通常可以识别为音乐的纯音频内容。

5

属于电视或流媒体电视连续剧的音视频内容。

6

由故事片组成的音视频内容。

错误:strict

类型:uint32

fuchsia.media.sessions2/player.fidl 中定义

名称说明
1

InterruptionBehavior 严格

类型:uint32

fuchsia.media.sessions2/player.fidl 中定义

在以下情况下,播放器会强制执行该行为: 例如被闹钟中断

系统会根据玩家的使用情况来检测中断。

默认情况下,中断行为为 NONE

名称说明
0

打扰对玩家没有影响 尽管可听性有所降低,但音频仍会继续播放。

1

有了此行为,当播放中断时,播放器会 暂停,直到中断结束 不会错过任何内容

MediaImageType 严格

类型:uint32

fuchsia.media.sessions2/images.fidl 中定义

名称说明
0

当前播放的媒体的图片。

1

媒体播放来源的图标(例如播放器或 在线媒体服务)。

PlayerState 严格

类型:uint32

fuchsia.media.sessions2/player.fidl 中定义

媒体播放器的状态。

名称说明
0

会话的初始状态(如果没有关联媒体)。

1

播放器正在播放内容。

2

播放器已暂停。

3

播放器应该正在播放,但为进行缓冲而暂停了。

4

播放器无法从此状态恢复,并将关闭。

重复模式 strict

类型:uint32

fuchsia.media.sessions2/player.fidl 中定义

重复播放当前媒体的模式。

名称说明
0

不重复。

1

重复相关的媒体组(例如播放列表)。

2

重复播放当前播放的媒体。

表格

MediaImage

fuchsia.media.sessions2/images.fidl 中定义

用于播放媒体的图片。

Ordinal字段类型说明
image_type MediaImageType
sizes vector<ImageSizeVariant>[16]

图片的可用变体。

PlayerCapabilities

fuchsia.media.sessions2/player.fidl 中定义

说明玩家的功能。

Ordinal字段类型说明
flags PlayerCapabilityFlags

指明播放器支持哪些功能。查看PlayerControl

PlayerInfoDelta

fuchsia.media.sessions2/player.fidl 中定义

发出后,应设置已更改的字段。 首次向新客户发出的数据应该是一个快照。

Ordinal字段类型说明
local bool

媒体进入设备网络的入口点是否为 本地机器如果是设备流式传输设备,则应为 true 而 false 或省略(如果这台计算机只是 作为扬声器接收音频流。

如果省略,值将保持不变。最初,此值为 true

player_status PlayerStatus

播放器的状态。

如果省略,所有组成部分的值都将保持不变。如果 PlayerStatus 中的某个字段是 其值将保持不变。每个字段都指定了初始值, player_status

metadata fuchsia.media/Metadata

正在播放的媒体的元数据。

如果省略,则元数据将保持不变。最初,没有元数据。

media_images vector<MediaImage>[16]

与正在播放的媒体相关联的图片。

如果省略,媒体图片会保持不变。空 vector 表示没有媒体图片,这也是初始状态。

player_capabilities PlayerCapabilities

播放器的功能。

如果省略, capability 保持不变。最初,我们假定玩家没有 功能。

interruption_behavior InterruptionBehavior

玩家在中断时希望采取的行为 例如闹钟

如果省略,行为保持不变。最初,值为 NONE

PlayerRegistration

fuchsia.media.sessions2/publisher.fidl 中定义

媒体会话注册表服务所需的全部信息 注册播放器,以便客户端观察其状态和控制 。

Ordinal字段类型说明
domain Domain

播放器所在的网域。如果是原生广告素材,则未设置 Fuchsia 域名。

usage fuchsia.media/AudioRenderUsage

播放器的音频输出方式。默认情况下,系统假定 成为 MEDIA。

PlayerStatus

fuchsia.media.sessions2/player.fidl 中定义

媒体播放器的状态。

Ordinal字段类型说明
duration zx/Duration

媒体播放的总时长。

如果省略此值,表示时长未知、不适用或保持不变。最初, 则假设持续时间未知

player_state PlayerState

播放器的状态。

如果省略此字段,则值保持不变。最初,值为 IDLE

timeline_function fuchsia.media/TimelineFunction

一个播放函数,用于描述 作为 CLOCK_MONOTONIC 的函数通过媒体播放。

如果省略此字段,则值保持不变。最初,reference_delta 为 1, 其他组成字段为 0。

repeat_mode RepeatMode

播放器的重复模式。

如果省略此字段,则值保持不变。最初,值为 NONE

shuffle_on bool

播放器的随机播放模式。

如果省略此字段,则值保持不变。最初,值为 false。

content_type ContentType

播放的内容的类型。

如果省略此字段,则值保持不变。最初,值为 OTHER

error Error

玩家可能遇到的错误。

除非出现错误,否则此字段会被省略。一旦指明了错误, 撤消。

is_live bool

播放的媒体是否为直播(例如电视或直播)。

如果省略此字段,则值保持不变。最初,值为 false。

SessionInfoDelta

fuchsia.media.sessions2/discovery.fidl 中定义

SessionInfoDelta 存储媒体会话的说明。

Ordinal字段类型说明
domain Domain

发生会话的网域。“域名”用于标识 相互兼容的媒体目标和会话;网域中的会话 将在同一网域的目标上播放。

此字段始终存在。

is_local bool

媒体播放的来源是否在此设备上。

仅当已知时,此字段才会显示。

is_locally_active bool

如果此值为 true,则播放是在设备本地进行。 通过设备扬声器播放本地内容,通过远程扬声器播放 。此字段仅在会话播放时设置;已暂停 会话未处于活跃状态。

此字段始终存在。

player_status PlayerStatus

播放器的状态。

此字段始终存在。

metadata fuchsia.media/Metadata

描述媒体会话的元数据。

此字段始终存在。

media_images vector<MediaImage>

与媒体或其来源相关联的图片。

此字段始终存在。

player_capabilities PlayerCapabilities

媒体播放器实现的功能。

此字段始终存在。

WatchOptions

fuchsia.media.sessions2/discovery.fidl 中定义

用于指定在观看合集时所观看会话的选项。

观察集是满足所有选项的会话集。

Ordinal字段类型说明
only_active bool

仅观看正在进行的课程。如果未设置,则观看全部。

allowed_sessions vector<uint64>[1000]

仅观看包含这些已列入许可名单的 ID 的会议。如果未设置,则观看全部。

PlayerCapabilityFlags 严格

类型:uint32

fuchsia.media.sessions2/player.fidl 中定义

名称说明
1

如果设置了此字段,则播放器可以 Play()

4

如果设置了此字段,则播放器可以 Pause()

8

如果设置了此字段,则播放器可以 Seek()

16

如果设置了此字段,则播放器可以 SkipForward()

32

如果设置了此字段,则播放器可以 SkipReverse()

64

如果设置此字段,播放器可以随机播放媒体。

128
256
512

如果设置了此字段,则播放器可以 BindGainControl()

1024

如果已设置,玩家可以重复分组。

2048

如果已设置,播放器可以重复播放单个媒体项。

4096

如果已设置,播放器可以接受播放速率更改。

ALIASES

名称说明
网域 string[1000]

域用于标识会话所在的生态系统。

域名应采用以下格式:

`domain://<unique name for protocol>.version`

| 符号已预留,不应在网域字符串中使用。

SessionId uint64