b-video
基础库版本 >=
3.16.0
开始支持,低版本需做兼容处理。
视频。相关api: bl.createVideoContext
属性 | 类型 | 默认值 | 必填 | 说明 | 版本 |
---|---|---|---|---|---|
src | string | 是 | 播放视频的资源地址,只支持B站的 avid 和 bvid | 3.16.0 | |
controls | boolean | true | 否 | 是否显示默认播放控件(播放/暂停按钮、播放进度、时间) | 3.16.0 |
danmu-btn | boolean | false | 否 | 是否显示弹幕按钮,仅在初始化时有效 | 3.16.0 |
enable-danmu | boolean | false | 否 | 是否展示弹幕,仅在初始化时有效 | 3.16.0 |
autoplay | boolean | false | 否 | 是否自动播放 | 3.16.0 |
loop | boolean | false | 否 | 是否循环播放 | 3.16.0 |
muted | boolean | false | 否 | 是否静音播放 | 3.16.0 |
initial-time | number | 0 | 否 | 指定视频初始播放位置 | 3.16.0 |
enable-progress-gesture | boolean | true | 否 | 是否开启控制进度的手势 | 3.16.0 |
object-fit | string | contain | 否 | 当视频大小与 video 容器大小不一致时,视频的表现形式 | 3.16.0 |
show-mute-btn | boolean | false | 否 | 是否显示静音按钮,不能动态修改 | 3.16.0 |
enable-play-gesture | boolean | false | 否 | 是否开启播放手势,即双击切换播放/暂停 | 3.16.0 |
vslide-gesture | boolean | false | 否 | 是否开启亮度与音量调节手势 | 3.16.0 |
showFullscreenBtn | boolean | true | 否 | 是否显示全屏按钮(全屏模式下会自动隐藏) | 3.26.0 |
direction | number | 否 | 设置全屏时视频的方向,不指定则根据宽高比自动判断 | 3.26.0 | |
enableAutoRotation | boolean | false | 否 | 是否跟随系统旋转自动全屏(开启后,仅视频播放状态下才生效) | 3.26.0 |
title | string | 否 | 全屏时title | 3.26.0 | |
play | eventhandle | 否 | 当开始/继续播放时触发 play 事件 | 3.16.0 | |
pause | eventhandle | 否 | 当暂停播放时触发 pause 事件 | 3.16.0 | |
ended | eventhandle | 否 | 当播放到末尾时触发 ended 事件 | 3.16.0 | |
timeupdate | eventhandle | 否 | 播放进度变化时触发,event.detail = {currentTime, duration} | 3.16.0 | |
waiting | eventhandle | 否 | 视频出现缓冲时触发 | 3.16.0 | |
error | eventhandle | 否 | 视频播放出错时触发 | 3.16.0 | |
progress | eventhandle | 否 | 加载进度变化时触发,只支持一段加载。event.detail = {buffered},百分比 | 3.16.0 | |
loadedmetadata | eventhandle | 否 | 视频元数据加载完成时触发。event.detail = {duration} | 3.16.0 | |
controlstoggle | eventhandle | 否 | 切换 controls 显示隐藏时触发。event.detail = {show} | 3.16.0 | |
fullscreenchange | eventhandle | 否 | 视频进入和退出全屏时触发,event.detail = {fullScreen, direction},direction 有效值为 vertical 或 horizontal | 3.26.0 |
object-fit 有效值:
值 | 说明 |
---|---|
contain | 包含 |
fill | 填充 |
cover | 覆盖 |
src 支持的格式
格式 | iOS | Android | example |
---|---|---|---|
avid | √ | √ | 10318716 |
bvid | √ | √ | BV18J411E7r1 |
Bug & Tip
- 当前页面仅支持初始化一个视频播放器。
- video 的 API 调用在 loadedmetadata 回调前调用无效,只有播放器预载完数据后才能使用。
- video 在 iOS 平台且 SDKVersion ==
3.26.0
(App 6.20.0),应用主题与系统不一致时,会出现渲染错乱,建议使用 bl.updateApp 引导用户进行 App 更新。 - enable-play-gesture 与 vslide-gesture 属性,有一个开启,就同时开启。
- v-show隐藏后 video 会暂停
示例代码
<template>
<b-video
id="myVideo"
:src="src"
:controls="controls"
:danmu-btn="danmuBtn"
:enable-danmu="enableDanmu"
:autoplay="autoplay"
:loop="loop"
:muted="muted"
:initial-time="initialTime"
:enable-progress-gesture="enableProgressGesture"
:show-mute-btn="showMuteBtn"
:object-fit="objectFit"
:enable-play-gesture="enablePlayGesture"
:vslide-gesture="vslideGesture"
@play="eventChange"
@pause="eventChange"
@ended="eventChange"
@timeupdate="eventChange"
@waiting="eventChange"
@error="eventChange"
@progress="eventChange"
@loadedmetadata="eventChange"
@controlstoggle="eventChange"
></b-video>
</template>
<script>
export default {
data() {
return {
src: 'BV18J411E7r1',
controls: true,
danmuBtn: false,
enableDanmu: false,
autoplay: false,
loop: false,
muted: false,
initialTime: 0,
enableProgressGesture: true,
objectFit: 'contain',
showMuteBtn: false,
enablePlayGesture: false,
vslideGesture: false,
}
},
methods: {
// 事件触发
eventChange(e) {
console.log('----- event -----', e);
}
}
};
</script>