# `bricks.VideoPlayer` 与 `bricks.Iptv` 技术文档
---
## 概述
本文档介绍基于 `bricks` 框架实现的两个核心类:
- **`bricks.VideoPlayer`**:一个功能完整的自定义视频播放器组件,支持多种视频格式(MP4、HLS `.m3u8`、DASH `.mpd`),并提供播放控制、音量调节、倍速播放、音轨切换和全屏等功能。
- **`bricks.Iptv`**:一个用于 IPTV 频道播放的高级组件,集成 `VideoPlayer`,可动态加载频道数据,并上报播放状态。
该组件依赖外部库:
- [hls.js](https://github.com/video-dev/hls.js) 用于播放 HLS 流(`.m3u8`)
- [dash.js](https://github.com/Dash-Industry-Forum/dash.js) 用于播放 DASH 流(`.mpd`)
### 外部依赖引入建议
```html
```
---
## 1. `bricks.VideoPlayer`
### 类定义
```js
bricks.VideoPlayer = class extends bricks.VBox
```
继承自 `bricks.VBox`,表示这是一个容器型 UI 组件,内部包含视频元素及控制栏。
---
### 构造函数:`constructor(opts)`
#### 参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `opts.url` | `String` | 是 | 视频源地址,支持 `.mp4`, `.m3u8`, `.mpd` 或普通流媒体 URL |
| `opts.autoplay` | `Boolean` | 否 | 是否自动播放,默认为 `false` |
#### 示例
```js
const player = new bricks.VideoPlayer({
url: 'https://example.com/stream.m3u8',
autoplay: true
});
```
---
### DOM 结构
创建如下 HTML 结构:
```html
```
---
### 属性
| 属性 | 类型 | 描述 |
|------|------|------|
| `this.video` | `HTMLVideoElement` | 内部 `