# 实时视频预览

## 示例说明

演示手机端如何请求眼镜的视频流和音频流，并在本地页面实时预览。

## 使用位置

手机端首页：

- `MainPhoneActivity` -> `VideoReceiveActivity`

示例页面：

- `com.rokid.phone.VideoReceiveActivity`

## 适用端

- 手机端

## 关键文件

- [glass3sdkphonedemo/app/src/main/java/com/rokid/phone/VideoReceiveActivity.kt](https://gitee.com/as_pixar/glass3sdkdemo/blob/main/glass3sdkphonedemo/app/src/main/java/com/rokid/phone/VideoReceiveActivity.kt)

## 流程说明

1. 用户输入帧率和码率参数。
2. 页面调用 `requestVideoStream()` 请求视频流。
3. 同时调用 `requestAudioStream()` 请求音频流。
4. 在 `IMessageListener.onNv21Data()` 中接收画面数据。
5. 把 NV21 数据交给 `glsurfaceview` 做渲染。
6. 在 `onClassicBTAudioStream()` 中接收音频并播放。

## 涉及能力

- 请求视频流
- 停止视频流
- 请求音频流
- 停止音频流
- NV21 实时数据接收

## 实现说明

### 适用场景

适合做：

- 实时预览
- 调参验证
- 视频链路可用性检查

### 传输的视频是什么格式

当前页面接收的是 NV21 数据，然后本地渲染，不是直接收 MP4 文件。

## 注意事项

- 帧率范围限制在 `5~30`。
- 码率范围限制在 `500k~10M`。
- 页面切回后台时会主动停流。
