fuchsia.media.sounds

添加数量:7

协议

参赛选手

fuchsia.media.sounds/sound_player.fidl 中定义

允许客户端播放发烧声。

添加声音缓冲区

以包含原始 PCM 样本的缓冲区的形式将声音添加到为客户端维护的集合中。服务将保留缓冲区 VMO 的句柄,直到声音被移除且不再播放,或者连接关闭为止。

如果 id 识别出该集合中已有的声音,该服务将关闭连接。

请求

名称类型
id uint32
buffer fuchsia.mem/Buffer
stream_type fuchsia.media/AudioStreamType

添加音效

将声音添加到为客户端维护的集合中,从文件中读取声音。如果 id 识别出该集合中已有的声音,该服务将关闭连接。返回声音时长或从 I/O 操作返回的错误状态。

目前仅支持 PCM WAV 文件和 Ogg/Opus 文件。

请求

名称类型
id uint32
file fuchsia.io/File

回复

名称类型
payload Player_AddSoundFromFile_Result

Play 音效

使用用法为 usage 的渲染程序播放由 id 标识的现有声音。系统会尽快播放声音。回复会在声音播放完毕后发送。 如果 id 无法识别集合中的现有声音,该方法会返回 PlaySoundError.NO_SUCH_SOUND。可以使用 StopPlayingSound 停止对指定有效 ID 的最新 PlaySound 调用,在这种情况下,此方法会返回 PlaySoundError.STOPPED

请求

名称类型
id uint32
usage fuchsia.media/AudioRenderUsage

回复

名称类型
payload Player_PlaySound_Result

移除音效

从为客户端维护的集合中移除声音。即使有 PlaySound 方法等待处理某个声音,该声音也可以被移除。

如果 id 无法识别集合中的现有声音,该服务将不执行任何操作。这是容忍的,这样客户端就无需等待来自 AddSoundFromFile 的响应即可播放和移除声音。

移除不需要的声音会释放与该声音关联的资源,主要是存储未压缩声音所需的 VMO。

请求

名称类型
id uint32

停止播放声音

停止播放最近对该声音的 PlaySound 调用所调用的 id 所识别的声音。如果 id 未识别出集合中的现有声音,或者该声音当前未在播放,则此方法不会执行任何操作。如果有多个 PlaySound 方法当前正在等待处理该声音,则只会停止最新的方法。

请求

名称类型
id uint32

结构

Player_AddSoundFromFile_Response(播放器添加声音来自文件响应)

fuchsia.media.sounds/sound_player.fidl 中定义

字段类型说明默认
duration zx/Duration 无默认值

Player_PlaySound_Response

fuchsia.media.sounds/sound_player.fidl 中定义

<空>

枚举

PlaySoundError 严格

类型:uint32

fuchsia.media.sounds/sound_player.fidl 中定义

Player.PlaySound 的错误类型。

名称说明
1

无法识别传递给 PlaySoundid

2

底层音频渲染程序运行失败。

3

声音播放被 |StopPlayingSound| 方法调用中断。

联合

Player_AddSoundFromFile_Result 严格

fuchsia.media.sounds/sound_player.fidl 中定义

序数变体类型说明
response Player_AddSoundFromFile_Response
err zx/Status

Player_PlaySound_Result 严格

fuchsia.media.sounds/sound_player.fidl 中定义

序数变体类型说明
response Player_PlaySound_Response
err PlaySoundError