协议
初级来源
在 fuchsia.media.playback/source_manager.fidl 中定义
Source
变体,用于直接向播放器提供基本流。
AddBinding
向此 ElementarySource
添加新绑定。通过使用此方法,客户端可以获取一个额外的通道来与此 ElementarySource
通信,即使在某个通道被对 SourceManager.SetSource
的调用占用后也是如此。
请求
名称 | 类型 |
---|---|
source_request |
server_end<ElementarySource>
|
添加信息流
添加基本流。可以通过关闭 SimpleStreamSink
来移除基本流。ticks_per_second_numerator
和 ticks_per_second_denominator
指示将用于 Streampacket
时间戳值的单位。例如,对于纳秒单位,ticks_per_second_numerator
应为 1000000000,ticks_per_second_denominator
应为 1。若要为 48k 音频使用帧单位,ticks_per_second_numerator
应为 48000,ticks_per_second_denominator
应为 1。
请求
名称 | 类型 |
---|---|
type |
fuchsia.media/StreamType
|
ticks_per_second_numerator |
uint32
|
ticks_per_second_denominator |
uint32
|
sink_request |
server_end<fuchsia.media/SimpleStreamSink>
|
OnStatusChanged
回复
名称 | 类型 |
---|---|
source_status |
SourceStatus
|
参赛选手
在 fuchsia.media.playback/player.fidl 中定义
播放媒体内容。
AddBinding
向该播放器添加新的绑定。
请求
名称 | 类型 |
---|---|
player_request |
server_end<Player>
|
绑定增益控制
绑定到该播放器的增益控件。
请求
名称 | 类型 |
---|---|
gain_control_request |
server_end<fuchsia.media.audio/GainControl>
|
CancelSourceTransition
取消待处理的转换,返回来源。如果没有待处理的转换,请求渠道会关闭。
请求
名称 | 类型 |
---|---|
returned_source_request |
server_end<Source>
|
创建元素来源
创建一个来源,以允许客户端向播放器提供独立的基本流。Duration_ns、can_pause、can_seek 和元数据均包含在 SourceStatus 中,当播放器使用 ElementarySource
时,PlayerStatus
中也会包含这些流。can_pause
和 can_seek
若为 false,则会限制播放器的功能。
请求
名称 | 类型 |
---|---|
duration_ns |
zx/Duration
|
can_pause |
bool
|
can_seek |
bool
|
metadata |
fuchsia.media/Metadata?
|
source_request |
server_end<ElementarySource>
|
创建文件源
创建从文件读取的来源。
请求
名称 | 类型 |
---|---|
file_channel |
handle<channel>
|
source_request |
server_end<Source>
|
创建读者源
创建从 SeekingReader
读取数据的来源。
请求
名称 | 类型 |
---|---|
seeking_reader |
SeekingReader
|
source_request |
server_end<Source>
|
创建视图
创建视频视图。
请求
名称 | 类型 |
---|---|
view_token |
fuchsia.ui.views/ViewToken
|
OnStatusChanged
在绑定后立即提供当前状态,并在绑定之后每当状态发生更改时提供。
回复
名称 | 类型 |
---|---|
player_status |
PlayerStatus
|
暂停
暂停播放。
请求
<空>
Play
开始播放。
请求
<空>
进度
跳转到指定位置,以纳秒为单位。
请求
名称 | 类型 |
---|---|
position |
int64
|
SetFileSource
设置要读取的文件通道。
请求
名称 | 类型 |
---|---|
file_channel |
handle<channel>
|
SetFileSourceWithOptions
设置要读取的文件通道。
请求
名称 | 类型 |
---|---|
file_channel |
handle<channel>
|
options |
PlayerOptions
|
设置播放率
设置播放器播放时使用的速率。“rate
”必须为正数。PlayerStatus
的 timeline_function
字段指示播放器播放时的实际速率。
请求
名称 | 类型 |
---|---|
playback_rate |
float32
|
SetSource
设置此播放器要使用的来源。如果来源为 null,播放器将进入空闲状态。
请求
名称 | 类型 |
---|---|
source |
Source?
|
TransitionToSource
在当前来源的播放达到 transition_pts 时转换到指定的来源。新来源从 start_pts 处开始播放。如果某个转换已处于待处理状态,则会被舍弃,取而代之的是新的转换。
请求
名称 | 类型 |
---|---|
source |
Source
|
transition_pts |
int64
|
start_pts |
int64
|
SeekingReader
在 fuchsia.media.playback/seeking_reader.fidl 中定义
描述
请求
<空>
回复
名称 | 类型 |
---|---|
status |
zx/Status
|
size |
uint64
|
can_seek |
bool
|
读取时间
请求
名称 | 类型 |
---|---|
position |
uint64
|
回复
名称 | 类型 |
---|---|
status |
zx/Status
|
socket |
handle<socket>?
|
来源
在 fuchsia.media.playback/source_manager.fidl 中定义
播放器可以使用的内容的来源。
OnStatusChanged
回复
名称 | 类型 |
---|---|
source_status |
SourceStatus
|
源代码管理器
在 fuchsia.media.playback/source_manager.fidl 中定义
代表玩家管理来源。
CancelSourceTransition
取消待处理的转换,返回来源。如果没有待处理的转换,请求渠道会关闭。
请求
名称 | 类型 |
---|---|
returned_source_request |
server_end<Source>
|
创建元素来源
创建一个来源,以允许客户端向播放器提供独立的基本流。Duration_ns、can_pause、can_seek 和元数据均包含在 SourceStatus 中,当播放器使用 ElementarySource
时,PlayerStatus
中也会包含这些流。can_pause
和 can_seek
若为 false,则会限制播放器的功能。
请求
名称 | 类型 |
---|---|
duration_ns |
zx/Duration
|
can_pause |
bool
|
can_seek |
bool
|
metadata |
fuchsia.media/Metadata?
|
source_request |
server_end<ElementarySource>
|
创建文件源
创建从文件读取的来源。
请求
名称 | 类型 |
---|---|
file_channel |
handle<channel>
|
source_request |
server_end<Source>
|
创建读者源
创建从 SeekingReader
读取数据的来源。
请求
名称 | 类型 |
---|---|
seeking_reader |
SeekingReader
|
source_request |
server_end<Source>
|
SetSource
设置此播放器要使用的来源。如果来源为 null,播放器将进入空闲状态。
请求
名称 | 类型 |
---|---|
source |
Source?
|
TransitionToSource
在当前来源的播放达到 transition_pts 时转换到指定的来源。新来源从 start_pts 处开始播放。如果某个转换已处于待处理状态,则会被舍弃,取而代之的是新的转换。
请求
名称 | 类型 |
---|---|
source |
Source
|
transition_pts |
int64
|
start_pts |
int64
|
结构
PlayerStatus
在 fuchsia.media.playback/player.fidl 中定义
玩家状态信息。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
duration |
zx/Duration
|
内容的持续时间。 |
无默认值 |
can_pause |
bool
|
播放器是否可以暂停。 |
无默认值 |
can_seek |
bool
|
玩家是否可以跳转。 |
无默认值 |
has_audio |
bool
|
来源是否有音频流。 |
无默认值 |
has_video |
bool
|
来源是否有视频流。 |
无默认值 |
ready |
bool
|
指示播放器是否已准备好播放。调用 |
无默认值 |
metadata |
fuchsia.media/Metadata?
|
无默认值 | |
problem |
Problem?
|
表示在阻止预期操作时出现问题。 |
无默认值 |
audio_connected |
bool
|
指示当前是否连接了某个音频流以进行渲染。
如果 |
无默认值 |
video_connected |
bool
|
指示当前是否连接了某个视频流以进行渲染。如果 |
无默认值 |
video_size |
fuchsia.math/Size?
|
当前正在制作的视频的尺寸。如果视频大小目前未知,则此值将为 null。 |
无默认值 |
pixel_aspect_ratio |
fuchsia.math/Size?
|
视频像素的相对尺寸。如果像素宽高比当前未知,则此值将为 null。 |
无默认值 |
timeline_function |
fuchsia.media/TimelineFunction?
|
用于将当地时间转换为呈现时间的函数。如果当前尚未定义时间轴函数,则此值将为 null。 |
无默认值 |
end_of_stream |
bool
|
指明所有视频流的呈现是否已到达视频流结尾。 |
无默认值 |
问题
在 fuchsia.media.playback/problem.fidl 中定义
对阻止预期操作的问题进行建模。
Problem
通常作为组件状态的一部分显示,可能作为可选字段显示。缺少 Problem
表示没有任何因素阻止预期的操作。发现问题时,客户端可以自动执行操作或显示相关界面。如果可以通过某项操作解决某个问题,客户端可能会自动执行该操作或以某种方式让用户加入解决方法。无论是哪种情况,导致问题暴露的问题得到解决后,问题就会消失。根据设计,没有用于忽略问题的一般方法。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
type |
string
|
问题类型。这是一个可扩展的字符串。 |
无默认值 |
details |
string?
|
与类型相关的详细信息。 |
无默认值 |
来源状态
在 fuchsia.media.playback/source_manager.fidl 中定义
来源状态信息。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
duration |
zx/Duration
|
内容的持续时间。 |
无默认值 |
can_pause |
bool
|
来源是否可以暂停。 |
无默认值 |
can_seek |
bool
|
来源是否可以跳转。 |
无默认值 |
has_audio |
bool
|
来源是否有音频流。 |
无默认值 |
has_video |
bool
|
来源是否有视频流。 |
无默认值 |
ready |
bool
|
指示来源是否准备就绪。如果值为 true,则表示已探测内容,并且内容不存在已知问题。 |
无默认值 |
metadata |
fuchsia.media/Metadata?
|
描述媒体。 |
无默认值 |
problem |
Problem?
|
表示在阻止预期操作时出现问题。null 值表示来源按预期运行。 |
无默认值 |
表格
PlayerOptions
在 fuchsia.media.playback/player.fidl 中定义
SetFileSourceWithOptions
中使用的选项。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
silent |
bool
|
如果设置为 true,系统会禁止呈现音频。默认值为 false。 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
PROBLEM_ASSET_NOT_FOUND | fuchsia.media.playback.AssetNotFound |
String |
|
PROBLEM_AUDIO_ENCODING_NOT_SUPPORTED | fuchsia.media.playback.AudioEncodingNotSupported |
String |
|
PROBLEM_CONNECTION_FAILED | fuchsia.media.playback.ConnectionFailed |
String |
|
PROBLEM_CONTAINER_NOT_SUPPORTED | fuchsia.media.playback.ContainerNotSupported |
String |
|
问题内部 | fuchsia.media.playback.Internal |
String |
|
PROBLEM_VIDEO_ENCODING_NOT_SUPPORTED | fuchsia.media.playback.VideoEncodingNotSupported |
String |
|
UNKNOWN_SIZE |
18446744073709551615
|
uint64 |
|