3.0 KiB
3.0 KiB
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 支持录音功能。
TextedAudioPlayer
控件功能:结合音频播放与文本展示的复合控件,适用于语音朗读+字幕同步场景。支持从流式响应中逐段加载音频与对应文本,并自动顺序播放。
类型:容器控件(垂直布局 VBox)
父类控件:bricks.VBox
初始化参数
无独立初始化参数,内部自动创建子控件:
AudioPlayer实例用于播放音频。Text实例用于显示对应文本内容。VScrollPanel提供文本区域滚动能力。
主要事件
无直接对外暴露的自定义事件。其行为由内部 AudioPlayer 的 ended 事件驱动,自动调用 playnext() 播放下一段内容。
内部通过
set_stream_urls(response)接收流式 JSON 数据,每项应包含audio(Base64 编码音频)、text(对应文字)、done(是否结束)字段。
✅ 所有控件均已通过
bricks.Factory.register注册,可在模板或配置中通过字符串名称实例化。