fuchsia.media.sessions2

添加数量:7

协议

ActiveSession

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

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

当前活跃的媒体会话是最近一个现有媒体会话,用于在本地设备上通告“正在播放”状态,即使它现在已暂停。

WatchActiveSession

监控当前会话。第一个请求将立即与当前活跃会话一起响应。当活动会话发生更改时,请始终让请求处于挂起状态以接收回复。

请求

<EMPTY>

响应

名称类型
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

绑定到会话的音量控制,以控制和通知。如果 PlayerCapabilities 中缺少 HAS_GAIN_CONTROL 标志表示不支持此方法,服务会关闭作为 volume_control_request 传递的通道句柄。

请求

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

NextItem

将媒体更改为下一项内容(例如播放列表中的下一首歌曲)。如果不支持此方法(表现为 PlayerCapabilities 中缺少 CHANGE_TO_NEXT_ITEM 标志),则此方法不会执行任何操作。

请求

<EMPTY>

暂停

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

请求

<EMPTY>

Play

播放媒体内容。如果不支持此方法(表现为 PlayerCapabilities 中缺少 PLAY 标志),则此方法不会执行任何操作。

请求

<EMPTY>

PrevItem

将媒体更改为上一项。如果不支持此方法(表现为 PlayerCapabilities 中缺少 CHANGE_TO_PREV_ITEM 标志),则此方法不会执行任何操作。

请求

<EMPTY>

进度

跳转到媒体中的特定位置。如果位置超出边界,实现可以自由进入错误状态。position 是相对于媒体开头的偏移量。如果 PlayerCapabilities 中缺少 SEEK 标志表明不支持此方法,则此方法不会执行任何操作。

请求

名称类型
position zx/Duration

SetPlaybackRate

设置媒体的播放速率。此操作不会更改播放模式。如果不支持此方法(表现为 PlayerCapabilities 中缺少 SET_PLAYBACK_RATE 标志),则此方法不会执行任何操作。

请求

名称类型
playback_rate float32

SetRepeatMode

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

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

请求

名称类型
repeat_mode RepeatMode

SetShuffleMode

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

请求

名称类型
shuffle_on bool

SkipForward

以播放器的默认跳过幅度向前快进。如果 PlayerCapabilities 中缺少 SKIP_FORWARD 标志表示不支持此方法,则此方法不会执行任何操作。

请求

<EMPTY>

SkipReverse

按照播放器的默认跳过时长在媒体中反向跳过。如果此方法不受支持,即 PlayerCapabilities 中缺少 SKIP_REVERSE 标志,则此方法不会执行任何操作。

请求

<EMPTY>

停止

停止播放。会话应关闭。

请求

<EMPTY>

WatchInfoChange

使用挂起获取模式获取净播放器信息更改。

请求

<EMPTY>

响应

名称类型
player_info_delta PlayerInfoDelta

PlayerControl

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

媒体播放器的控件。PlayerCapabilities 表示播放器支持此协议中的哪些方法。由于功能是动态的,并且客户端无法始终知道在方法调用到达服务时支持哪些功能,因此系统会直接忽略调用不受支持的方法。一般来说,除非播放器指明提供持续支持,否则客户端不应期望相关方法能够正常运行。

BindVolumeControl

绑定到会话的音量控制,以控制和通知。如果 PlayerCapabilities 中缺少 HAS_GAIN_CONTROL 标志表示不支持此方法,服务会关闭作为 volume_control_request 传递的通道句柄。

请求

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

NextItem

将媒体更改为下一项内容(例如播放列表中的下一首歌曲)。如果不支持此方法(表现为 PlayerCapabilities 中缺少 CHANGE_TO_NEXT_ITEM 标志),则此方法不会执行任何操作。

请求

<EMPTY>

暂停

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

请求

<EMPTY>

Play

播放媒体内容。如果不支持此方法(表现为 PlayerCapabilities 中缺少 PLAY 标志),则此方法不会执行任何操作。

请求

<EMPTY>

PrevItem

将媒体更改为上一项。如果不支持此方法(表现为 PlayerCapabilities 中缺少 CHANGE_TO_PREV_ITEM 标志),则此方法不会执行任何操作。

请求

<EMPTY>

进度

跳转到媒体中的特定位置。如果位置超出边界,实现可以自由进入错误状态。position 是相对于媒体开头的偏移量。如果 PlayerCapabilities 中缺少 SEEK 标志表明不支持此方法,则此方法不会执行任何操作。

请求

名称类型
position zx/Duration

SetPlaybackRate

设置媒体的播放速率。此操作不会更改播放模式。如果不支持此方法(表现为 PlayerCapabilities 中缺少 SET_PLAYBACK_RATE 标志),则此方法不会执行任何操作。

请求

名称类型
playback_rate float32

SetRepeatMode

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

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

请求

名称类型
repeat_mode RepeatMode

SetShuffleMode

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

请求

名称类型
shuffle_on bool

SkipForward

以播放器的默认跳过幅度向前快进。如果 PlayerCapabilities 中缺少 SKIP_FORWARD 标志表示不支持此方法,则此方法不会执行任何操作。

请求

<EMPTY>

SkipReverse

按照播放器的默认跳过时长在媒体中反向跳过。如果此方法不受支持,即 PlayerCapabilities 中缺少 SKIP_REVERSE 标志,则此方法不会执行任何操作。

请求

<EMPTY>

停止

停止播放。会话应关闭。

请求

<EMPTY>

出版商

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

将媒体更改为下一项内容(例如播放列表中的下一首歌曲)。

请求

<EMPTY>

暂停

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

请求

<EMPTY>

Play

播放媒体内容。

请求

<EMPTY>

PrevItem

将媒体更改为上一项。

请求

<EMPTY>

进度

跳转到媒体中的特定位置。如果位置超出边界,实现可以自由进入错误状态。position 是相对于媒体开头的偏移量。

请求

名称类型
position zx/Duration

SetPlaybackRate

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

请求

名称类型
playback_rate float32

SetRepeatMode

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

请求

名称类型
repeat_mode RepeatMode

SetShuffleMode

设置随机播放模式。

请求

名称类型
shuffle_on bool

SkipForward

以播放器的默认跳过幅度向前快进。

请求

<EMPTY>

SkipReverse

按照播放器的默认跳过时长在媒体中反向跳过。

请求

<EMPTY>

停止

停止播放。会话应关闭。

请求

<EMPTY>

WatchStatus

查看会话状态。让请求保持挂起状态,以便在会话状态发生变化时收到回复。系统会立即响应第一个请求并返回当前状态。

请求

<EMPTY>

响应

名称类型
session_info_delta SessionInfoDelta

SessionObserver

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

查看媒体会话的状态。

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

WatchStatus

查看会话状态。让请求保持挂起状态,以便在会话状态发生变化时收到回复。系统会立即响应第一个请求并返回当前状态。

请求

<EMPTY>

响应

名称类型
session_info_delta SessionInfoDelta

SessionsWatcher

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

SessionsWatcher 用于监控已发布会话的集合。

SessionRemoved

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

SessionsWatcher 必须回复确认收到会话移除通知。未回复的未回复观看者最终将断开连接。

请求

名称类型
session_id SessionId

响应

<EMPTY>

SessionUpdated

在会话更新时由注册表服务调用。在首次连接时,系统将根据需要多次调用此函数来传达世界的状态。

SessionsWatcher 必须进行回复,以确认已收到会话信息增量。未回复的未回复观看者最终将断开连接。

请求

名称类型
session_id SessionId
session_info_delta SessionInfoDelta

响应

<EMPTY>

结构

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

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

错误严格

类型: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

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

RepeatMode 严格

类型:uint32

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

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

名称说明
0

不重复。

1

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

2

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

表格

MediaImage

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

用于播放媒体内容的图片。

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

图片的可用变体。

PlayerCapabilities

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

描述玩家的能力。

序数字段类型说明
flags PlayerCapabilityFlags

指明播放器支持哪些功能。如需了解详情,请参阅 PlayerControl

PlayerInfoDelta

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

发出后,应设置已更改的字段。首次向新客户端发出的内容应该是快照。

序数字段类型说明
local bool

指定设备网络的媒体入口点是否是本地计算机;如果是设备从音乐服务流式传输内容,则应为 true;如果计算机仅接收音频流以充当扬声器,则此项应为 false 或省略。

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

player_status PlayerStatus

播放器的状态。

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

metadata fuchsia.media/Metadata

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

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

media_images vector<MediaImage>[16]

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

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

player_capabilities PlayerCapabilities

播放器的功能。

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

interruption_behavior InterruptionBehavior

玩家在被闹钟等因素打断时想要进行的行为。

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

PlayerRegistration

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

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

序数字段类型说明
domain Domain

播放器所在的网域。如果是原生紫红色网域,则取消设置。

usage fuchsia.media/AudioRenderUsage

播放器的音频输出使用情况。默认情况下,系统假定该参数为 MEDIA。

PlayerStatus

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

媒体播放器的状态。

序数字段类型说明
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 包含媒体会话的说明。

序数字段类型说明
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 中定义

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

监控集是指满足所有选项的一组会话。

序数字段类型说明
only_active bool

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

allowed_sessions vector<uint64>[1000]

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

BITS

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

如果设置了此字段,则播放器可以接受播放速率变化。

别名

名称说明
网域 string[1000]

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

网域应采用

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

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

SessionId uint64