# `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
00:00 / 00:00
``` --- ### 属性 | 属性 | 类型 | 描述 | |------|------|------| | `this.video` | `HTMLVideoElement` | 内部 `