协议
ActiveSession
在 fuchsia.media.sessions2/discovery.fidl 中定义
用于观看设备上当前活跃媒体会话的协议。
当前活动的媒体会话是最近的现有媒体会话 宣布“正在播放”状态(即使设备现在已暂停)。
WatchActiveSession
监控活动会话。系统会立即回复第一个请求 与当前活动会话相关联。始终让请求处于挂起状态 并在当前会话发生变化时给予回复。
请求
<空>
响应
名称 | 类型 |
---|---|
session |
SessionControl?
|
发现
在 fuchsia.media.sessions2/discovery.fidl 中定义
Discovery
会观察已发布的媒体会话的集合
并将客户端连接到这些服务
ConnectToSession
连接到 session_id
的 SessionControl
(如果存在)。丢弃
渠道。
请求
名称 | 类型 |
---|---|
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_id
的 SessionObserver
(如果存在)。丢弃
渠道。
请求
名称 | 类型 |
---|---|
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
将重复模式设置为任何受支持的重复模式。
此方法是否生效取决于 PlayerCapabilities
和 repeat_mode
:
请求
名称 | 类型 |
---|---|
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
将重复模式设置为任何受支持的重复模式。
此方法是否生效取决于 PlayerCapabilities
和 repeat_mode
:
请求
名称 | 类型 |
---|---|
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 |
内容不符合使用任何其他值的条件。 |
AUDIO |
2 |
不能算作音乐的纯音频内容。 |
视频 |
3 |
不能作为电视节目或电影的纯视频或音频/视频内容。 |
MUSIC |
4 |
通常可以识别为音乐的纯音频内容。 |
TV_SHOW |
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 |
当前播放的媒体的图片。 |
SOURCE_ICON |
1 |
媒体播放来源的图标(例如播放器或 在线媒体服务)。 |
PlayerState 严格
类型:uint32
在 fuchsia.media.sessions2/player.fidl 中定义
媒体播放器的状态。
名称 | 值 | 说明 |
---|---|---|
空闲 |
0 |
会话的初始状态(如果没有关联媒体)。 |
正在播放 |
1 |
播放器正在播放内容。 |
已暂停 |
2 |
播放器已暂停。 |
正在缓冲 |
3 |
播放器应该正在播放,但为进行缓冲而暂停了。 |
ERROR |
4 |
播放器无法从此状态恢复,并将关闭。 |
重复模式 strict
类型:uint32
在 fuchsia.media.sessions2/player.fidl 中定义
重复播放当前媒体的模式。
名称 | 值 | 说明 |
---|---|---|
OFF |
0 |
不重复。 |
组 |
1 |
重复相关的媒体组(例如播放列表)。 |
单曲 |
2 |
重复播放当前播放的媒体。 |
表格
MediaImage
在 fuchsia.media.sessions2/images.fidl 中定义
用于播放媒体的图片。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
image_type |
MediaImageType
|
|
2 |
sizes |
vector<ImageSizeVariant>[16]
|
图片的可用变体。 |
PlayerCapabilities
在 fuchsia.media.sessions2/player.fidl 中定义
说明玩家的功能。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
flags |
PlayerCapabilityFlags
|
指明播放器支持哪些功能。查看 |
PlayerInfoDelta
在 fuchsia.media.sessions2/player.fidl 中定义
发出后,应设置已更改的字段。 首次向新客户发出的数据应该是一个快照。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
local |
bool
|
媒体进入设备网络的入口点是否为 本地机器如果是设备流式传输设备,则应为 true 而 false 或省略(如果这台计算机只是 作为扬声器接收音频流。 如果省略,值将保持不变。最初,此值为 |
2 |
player_status |
PlayerStatus
|
播放器的状态。 如果省略,所有组成部分的值都将保持不变。如果 |
3 |
metadata |
fuchsia.media/Metadata
|
正在播放的媒体的元数据。 如果省略,则元数据将保持不变。最初,没有元数据。 |
4 |
media_images |
vector<MediaImage>[16]
|
与正在播放的媒体相关联的图片。 如果省略,媒体图片会保持不变。空 vector 表示没有媒体图片,这也是初始状态。 |
5 |
player_capabilities |
PlayerCapabilities
|
播放器的功能。 如果省略, capability 保持不变。最初,我们假定玩家没有 功能。 |
6 |
interruption_behavior |
InterruptionBehavior
|
玩家在中断时希望采取的行为 例如闹钟 如果省略,行为保持不变。最初,值为 |
PlayerRegistration
在 fuchsia.media.sessions2/publisher.fidl 中定义
媒体会话注册表服务所需的全部信息 注册播放器,以便客户端观察其状态和控制 。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
domain |
Domain
|
播放器所在的网域。如果是原生广告素材,则未设置 Fuchsia 域名。 |
2 |
usage |
fuchsia.media/AudioRenderUsage
|
播放器的音频输出方式。默认情况下,系统假定 成为 MEDIA。 |
PlayerStatus
在 fuchsia.media.sessions2/player.fidl 中定义
媒体播放器的状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
duration |
zx/Duration
|
媒体播放的总时长。 如果省略此值,表示时长未知、不适用或保持不变。最初, 则假设持续时间未知 |
2 |
player_state |
PlayerState
|
播放器的状态。 如果省略此字段,则值保持不变。最初,值为 |
3 |
timeline_function |
fuchsia.media/TimelineFunction
|
一个播放函数,用于描述
作为 如果省略此字段,则值保持不变。最初, |
4 |
repeat_mode |
RepeatMode
|
播放器的重复模式。 如果省略此字段,则值保持不变。最初,值为 |
5 |
shuffle_on |
bool
|
播放器的随机播放模式。 如果省略此字段,则值保持不变。最初,值为 false。 |
6 |
content_type |
ContentType
|
播放的内容的类型。 如果省略此字段,则值保持不变。最初,值为 |
7 |
error |
Error
|
玩家可能遇到的错误。 除非出现错误,否则此字段会被省略。一旦指明了错误, 撤消。 |
8 |
is_live |
bool
|
播放的媒体是否为直播(例如电视或直播)。 如果省略此字段,则值保持不变。最初,值为 false。 |
SessionInfoDelta
在 fuchsia.media.sessions2/discovery.fidl 中定义
SessionInfoDelta 存储媒体会话的说明。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
domain |
Domain
|
发生会话的网域。“域名”用于标识 相互兼容的媒体目标和会话;网域中的会话 将在同一网域的目标上播放。 此字段始终存在。 |
2 |
is_local |
bool
|
媒体播放的来源是否在此设备上。 仅当已知时,此字段才会显示。 |
3 |
is_locally_active |
bool
|
如果此值为 此字段始终存在。 |
4 |
player_status |
PlayerStatus
|
播放器的状态。 此字段始终存在。 |
5 |
metadata |
fuchsia.media/Metadata
|
描述媒体会话的元数据。 此字段始终存在。 |
6 |
media_images |
vector<MediaImage>
|
与媒体或其来源相关联的图片。 此字段始终存在。 |
7 |
player_capabilities |
PlayerCapabilities
|
媒体播放器实现的功能。 此字段始终存在。 |
WatchOptions
在 fuchsia.media.sessions2/discovery.fidl 中定义
用于指定在观看合集时所观看会话的选项。
观察集是满足所有选项的会话集。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
only_active |
bool
|
仅观看正在进行的课程。如果未设置,则观看全部。 |
2 |
allowed_sessions |
vector<uint64>[1000]
|
仅观看包含这些已列入许可名单的 ID 的会议。如果未设置,则观看全部。 |
位
PlayerCapabilityFlags 严格
类型:uint32
在 fuchsia.media.sessions2/player.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
PLAY |
1 | 如果设置了此字段,则播放器可以 |
暂停 |
4 | 如果设置了此字段,则播放器可以 |
查找 |
8 | 如果设置了此字段,则播放器可以 |
SKIP_FORWARD |
16 | 如果设置了此字段,则播放器可以 |
SKIP_REVERSE |
32 | 如果设置了此字段,则播放器可以 |
随机播放 |
64 | 如果设置此字段,播放器可以随机播放媒体。 |
CHANGE_TO_NEXT_ITEM |
128 | |
CHANGE_TO_PREV_ITEM |
256 | |
HAS_GAIN_CONTROL |
512 | 如果设置了此字段,则播放器可以 |
REPEAT_GROUPS |
1024 | 如果已设置,玩家可以重复分组。 |
REPEAT_SINGLE |
2048 | 如果已设置,播放器可以重复播放单个媒体项。 |
SET_PLAYBACK_RATE |
4096 | 如果已设置,播放器可以接受播放速率更改。 |
ALIASES
名称 | 值 | 说明 |
---|---|---|
网域 |
string [1000 ] |
域用于标识会话所在的生态系统。 域名应采用以下格式:
|
SessionId |
uint64 |