# StreamAudio

控件功能：实现音频流的实时采集、语音活动检测（VAD）触发、音频上传以及接收服务器返回的识别文本结果，常用于语音识别场景。  
类型：容器控件  
父类控件：bricks.VBox

## 初始化参数

- `opts` {Object} - 配置选项对象，继承自 VBox 并扩展以下属性：
  - `name` {string} 可选 - 控件名称，默认为 `'asr_text'`。
  - `height` {string} - 固定高度为 `'100%'`，不可覆盖。
  - 其他 VBox 支持的通用参数（如 layout 等）。

> 注意：构造函数中会自动设置 `height='100%'` 和默认 `name`，并创建内部子控件（按钮、填充器、文本显示等）。

## 主要事件

无直接对外暴露的自定义事件，但通过绑定和回调机制处理以下行为：

- **按钮点击事件**：`click` 事件绑定在内部 `this.button` 上，触发 `toggle_status()` 方法，用于开始或停止音频流采集。
- **语音结束事件**：由 `vad.MicVAD` 的 `onSpeechEnd(audio)` 回调触发，调用 `handle_audio(audio)` 将音频数据编码并发送。
- **数据接收事件**：在 `receive_data()` 中通过 `reader.readline()` 持续读取服务端响应流，每收到一条 JSON 数据即更新显示文本。

---

# ASRText

控件功能：与 `StreamAudio` 完全相同，是其别名控件，用于更语义化地表示语音识别文本输出组件。  
类型：容器控件  
父类控件：bricks.VBox（实际继承关系同 StreamAudio）

## 初始化参数

同 `StreamAudio`。

## 主要事件

同 `StreamAudio`。
