# AudioPlayer **控件功能**:用于播放音频文件,支持本地 URL 或流式加载,具备播放、暂停、自动播放、播放队列和状态检测等功能。 **类型**:普通控件 **父类控件**:`bricks.JsWidget` ## 初始化参数 | 参数名 | 类型 | 说明 | |----------|--------|------| | `url` | String | 音频资源的 URL 地址,可选。构造时传入则立即加载。 | | `autoplay`| Boolean| 是否在音频可播放后自动开始播放,默认为 `false`。 | ## 主要事件 | 事件名 | 触发条件 | |--------|---------| | `ended` | 当前音频播放结束且播放列表为空时触发。 | --- # AudioRecorder **控件功能**:实现音频录制功能,基于浏览器麦克风权限进行 WAV 格式录音,提供开始/停止录音、实时时间显示、录音上传和下载功能。依赖第三方库 Recorder.js(WAV 格式)。 **类型**:容器控件(继承自 HBox,包含按钮与文本) **父类控件**:`bricks.HBox` ## 初始化参数 | 参数名 | 类型 | 说明 | |-------------|--------|------| | `upload_url` | String | 录音结束后自动上传的目标 URL 地址,可选。 | | `start_icon` | String | 开始录音按钮显示的 SVG 图标路径,默认使用内置资源。 | | `stop_icon` | String | 停止录音按钮显示的 SVG 图标路径,默认使用内置资源。 | | `icon_rate` | Number | SVG 图标缩放比例,传递给内部 `Svg` 控件。 | ## 主要事件 | 事件名 | 触发条件 | |----------------|---------| | `record_started` | 用户点击开始录音,麦克风授权成功后触发。 | | `record_ended` | 用户停止录音,生成 blob 数据后触发,携带 `{data, url, duration}` 参数。 | | `uploaded` | 成功上传录音文件到服务器后触发,携带服务器返回结果。 | > ⚠️ 注意:需引入外部库 [Recorder.js](https://gitee.com/xiangyuecn/Recorder) 支持录音功能。 --- # TextedAudioPlayer **控件功能**:结合音频播放与文本展示的复合控件,适用于语音朗读+字幕同步场景。支持从流式响应中逐段加载音频与对应文本,并自动顺序播放。 **类型**:容器控件(垂直布局 VBox) **父类控件**:`bricks.VBox` ## 初始化参数 无独立初始化参数,内部自动创建子控件: - `AudioPlayer` 实例用于播放音频。 - `Text` 实例用于显示对应文本内容。 - `VScrollPanel` 提供文本区域滚动能力。 ## 主要事件 无直接对外暴露的自定义事件。其行为由内部 `AudioPlayer` 的 `ended` 事件驱动,自动调用 `playnext()` 播放下一段内容。 > 内部通过 `set_stream_urls(response)` 接收流式 JSON 数据,每项应包含 `audio`(Base64 编码音频)、`text`(对应文字)、`done`(是否结束)字段。 --- > ✅ 所有控件均已通过 `bricks.Factory.register` 注册,可在模板或配置中通过字符串名称实例化。