video.md 2.4 KB
Newer Older
D
DCloud_LXH 已提交
1
## video
D
DCloud_LXH 已提交
2 3 4 5 6

<!-- UTSCOMJSON.video.description -->

<!-- UTSCOMJSON.video.attrubute -->

D
DCloud_LXH 已提交
7 8
<!-- UTSCOMJSON.video.event -->

D
DCloud_LXH 已提交
9 10
<!-- UTSCOMJSON.video.component_type -->

DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
11 12 13 14 15 16 17
### 视频格式
- [x] mp4
- [x] m4v
- [x] mov
- [x] webm
- [x] 3gp
- [x] flv
W
x  
wanganxp 已提交
18
- [x] m3u8 (本地m3u8文件需3.99+)
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
19

D
DCloud_LXH 已提交
20 21
<!-- UTSCOMJSON.video.example -->

D
DCloud_LXH 已提交
22 23
<!-- UTSCOMJSON.video.compatibility -->

D
DCloud_LXH 已提交
24
#### App平台
W
x  
wanganxp 已提交
25 26 27

App-Android平台video组件使用ijkplayer库实现:[https://github.com/bilibili/ijkplayer](https://github.com/bilibili/ijkplayer)

D
DCloud_LXH 已提交
28
弹幕功能使用DanmakuFlameMaster库实现:[https://github.com/bilibili/DanmakuFlameMaster](https://github.com/bilibili/DanmakuFlameMaster)
W
x  
wanganxp 已提交
29 30

ijkplayer库的功能较多,video组件并非完全封装。有需要的开发者可以使用uts直接操作该库。
DCloud-yyl's avatar
DCloud-yyl 已提交
31

W
video  
wanganxp 已提交
32 33 34 35
video组件的源码[详见](https://gitcode.net/dcloud/uni-component/-/tree/master/uni_modules/uni-video)。下载该uni_modules到工程下,修改源码打包,可覆盖内置的video组件。

另外ijkplayer作为一个开源库,比腾讯视频等商业sdk仍有差距。如无法在开源库上满足需求,可在插件市场寻找商业sdk插件:[腾讯视频](https://ext.dcloud.net.cn/search?q=%E8%85%BE%E8%AE%AF%E8%A7%86%E9%A2%91&orderBy=Relevance&cat1=5&cat2=51)[阿里云视频](https://ext.dcloud.net.cn/search?q=%E9%98%BF%E9%87%8C%E4%BA%91%E8%A7%86%E9%A2%91&orderBy=Relevance&cat1=5&cat2=51)

D
DCloud_LXH 已提交
36 37
<!-- UTSCOMJSON.video.children -->

W
x  
wanganxp 已提交
38
### 上下文对象API
W
x  
wanganxp 已提交
39

W
x  
wanganxp 已提交
40
video的操作api为[uni.createVideoContext()](../api/create-video-context.md)
W
x  
wanganxp 已提交
41

D
DCloud_LXH 已提交
42
给video组件设一个id属性,将id的值传入uni.createVideoContext(),即可得到video组件的上下文对象,进一步可使用`.play()``.stop()`等方法。
W
wanganxp 已提交
43 44 45 46 47 48

<!-- UTSCOMJSON.video.reference -->

### Bug & Tips@tips
- 暂不支持横屏全屏后放置子组件
- 标准运行基座默认不包含intel x86 cpu的兼容so库,所以video组件在标准基座运行时无法在x86 cpu的设备上运行(常见于模拟器)。如需支持x86 cpu,请在manifest里配置`abiFilters`,打包或自定义基座后生效 [详见](https://uniapp.dcloud.net.cn/uni-app-x/manifest.html#android)
W
x  
wanganxp 已提交
49
- 本地视频文件,或者静态引用(HBuilderX 3.97+)、或者import导入文件、或者在static目录下(项目下或uni_modules下都支持static目录),否则文件不会被copy到最终的包中,导致无法访问。
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
50
- 默认拦截触摸事件,目前会导致父组件无法响应触摸事件