video
Video模块管理多媒体视频相关能力,可用创建视频播放控件,直播推流控件等。
方法:
- createVideoPlayer: 创建VideoPlayer对象
- createLivePusher: 创建LivePusher对象
- getVideoPlayerById: 查找已经创建的VideoPlayer对象
- getLivePusherById: 查找已经创建的LivePusher对象
对象:
- VideoPlayer: 视频播放控件对象
- VideoPlayerStyles: 视频播放控件参数
- VideoPlayerEvents: 视频播放控件事件类型
- LivePusher: 直播推流控件对象
- LivePusherStyles: 直播推流控件配置选项
- LivePusherEvents: 直播推流控件事件类型
回调方法:
- VideoPlayerEventCallback: 视频播放控件事件监听回调函数
- LivePusherEventCallback: 视频播放控件事件监听回调函数
权限:
5+功能模块(permissions)
{
// ...
"permissions":{
	// ...
	"VideoPlayer": {
		"description": "视频播放"
	},
	"LivePusher": {
		"description": "直播推流"
	}
}
}
			
VideoPlayer
视频播放控件对象
interface plus.video.VideoPlayer {
	// Methods
	function void addEventListener(event, listener, capture);
	function void setStyles(styles);
	function void play();
	function void pause();
	function void seek(position);
	function void requestFullScreen();
	function void exitFullScreen();
	function void stop();
	function void hide();
	function void show();
	function void close();
	function void sendDanmu(danmu);
	function void playbackRate(rate);
}
				
说明:
VideoPlayer对象表示视频播放控件对象,在窗口中播放视频,可支持本地视频(mp4/flv),网络视频地址(mp4/flv/m3u8)及流媒体(rtmp/hls/rtsp)。 编码格式: Android平台:h264、mpeg4、flv、hevc、vp6f、vp8/9 iOS平台:h264、mpeg4、flv、hevc、vp6f
构造:
- VideoPlayer.constructor(id, styles): 创建VideoPlayer对象
方法:
- addEventListener: 监听视频播放控件事件
- setStyles: 设置视频播放控件参数
- setOptions: 设置视频播放控件参数(将废弃,使用setStyles)
- play: 播放视频
- pause: 暂停视频
- seek: 跳转到指定位置
- requestFullScreen: 切换到全屏
- exitFullScreen: 退出全屏
- stop: 停止播放视频
- hide: 隐藏视频播放控件
- show: 显示视频播放控件
- close: 关闭视频播放控件
- sendDanmu: 发送弹幕
- playbackRate: 设置倍速播放
VideoPlayerStyles
视频播放控件参数
属性:
- src: (String
	类型
)视频资源地址支持本地地址,也支持网络地址及直播流(RTMP)。 
- initial-time: (Number
	类型
)视频初始播放位置单位为秒(s)。 注意:仅在视频开始播放前设置有效。 
- duration: (Number
	类型
)视频长度单位为秒(s)。 注意:仅在视频开始播放前设置有效。 
- controls: (Boolean
	类型
)是否显示默认播放控件默认值为true。 包括播放/暂停按钮、播放进度、时间等。 
- danmu-list: (Array(JSON)
	类型
)弹幕列表弹幕JSON对象包括属性:text(String类型,弹幕文本类容),color(String类型,弹幕颜色,格式为#RRGGBB),time(Number类型,弹幕出现的时间,单位为秒)。 
- danmu-btn: (Boolean
	类型
)是否显示弹幕按钮默认值为false。 注意:仅在控件构造时设置有效,不能动态更新。 
- enable-danmu: (Boolean
	类型
)是否展示弹幕默认值为false。 注意:仅在控件构造时设置有效,不能动态更新。 
- autoplay: (Boolean
	类型
)是否自动播放默认值为false。 
- loop: (Boolean
	类型
)是否循环播放默认值为false。 
- muted: (Boolean
	类型
)是否静音播放默认值为false。 
- direction: (Number
	类型
)设置全屏时视频的方向不指定则根据宽高比自动判断。 有效值为: 0(正常竖向), 90(屏幕逆时针90度), -90(屏幕顺时针90度)。 默认值为-90。 
- show-progress: (Boolean
	类型
)是否显示播放进度默认值为true。 
- show-fullscreen-btn: (Boolean
	类型
)是否显示全屏按钮默认值为true。 
- show-play-btn: (Boolean
	类型
)是否显示视频底部控制栏的播放按钮默认值为true。 
- show-center-play-btn: (Boolean
	类型
)是否显示视频中间的播放按钮默认值为true。 
- enable-progress-gesture: (Boolean
	类型
)是否开启控制进度的手势默认值为true。 
- objectFit: (String
	类型
)当视频大小与 video 容器大小不一致时,视频的表现形式有效值为:contain(包含),fill(填充),cover(覆盖)。 默认值为contain。 仅Android平台支持。 
- poster: (String
	类型
)视频封面的图片网络资源地址如果 controls 属性值为 false 则设置 poster 无效。 
- top: (String
	类型
)VideoPlayer控件左上角的垂直偏移量可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的高度; 自动计算,如"auto",根据height值自动计算,相对于父Webview窗口垂直居中。 
- left: (String
	类型
)VideoPlayer控件左上角的水平偏移量可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的宽度; 自动计算,如"auto",根据width值自动计算,相对于父Webview窗口水平居中。 默认值为"0px"。 
- width: (String
	类型
)VideoPlayer控件的宽度可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的宽度。 默认值为"100%"。 
- height: (String
	类型
)VideoPlayer控件的高度可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的高度。 默认值为"100%"。 
- position: (String
	类型
)VideoPlayer控件在Webview窗口的布局模式可取值: "static" - 静态布局模式,如果页面存在滚动条则随窗口内容滚动; "absolute" - 绝对布局模式,如果页面存在滚动条不随窗口内容滚动; 默认值为"static"。 
VideoPlayerEvents
视频播放控件事件类型
常量:
- "play": (String
	类型
)视频播放事件当视频开始/继续播放时触发。 无事件回调函数参数。 
- "pause": (String
	类型
)视频暂停事件当视频暂停播放时触发。 无事件回调函数参数。 
- "ended": (String
	类型
)视频结束事件当视频播放到末尾时触发。 无事件回调函数参数。 
- "timeupdate": (String
	类型
)视频播放进度更新事件当视频播放进度变化时触发,触发频率250ms一次。 事件回调函数参数event.detail = {currentTime:"Number类型,当前播放时间(单位为秒)",duration:"Number类型,视频总长度(单位为秒)"}。 
- "fullscreenchange": (String
	类型
)视频播放全屏播放状态变化事件当视频播放进入或退出全屏时触发。 事件回调函数参数event.detail = {fullScreen:"Boolean类型,当前状态是否为全屏", direction:"String类型,vertical或horizontal"}。 
- "waiting": (String
	类型
)视频缓冲事件当视频播放出现缓冲时触发。 无事件回调函数参数。 
- "error": (String
	类型
)视频错误事件当视频播放出错时触发。 无事件回调函数参数。 
LivePusher
直播推流控件对象
interface plus.video.LivePusher {
	// Methods
	function void addEventListener(event, listener, capture);
	function void setStyles(styles);
	function void preview();
	function void start();
	function void stop(options);
	function void pause();
	function void resume();
	function void switchCamera();
	function void snapshot();
	function void close();
}
				
说明:
LivePusher对象表示直播推流控件对象,在窗口中显示捕获视频,实时推送到流媒体(RTMP)服务器。
构造:
- LivePusher.constructor(id, options): 创建LivePusher对象
方法:
- addEventListener: 监听直播推流控件事件
- setStyles: 设置直播推流控件参数
- setOptions: 设置直播推流控件参数(将废弃,使用setStyles)
- preview: 预览摄像头采集数据
- start: 开始推流
- stop: 停止推流
- pause: 暂停推流
- resume: 恢复推流
- switchCamera: 切换前后摄像头
- snapshot: 快照
- close: 关闭直播推流控件
LivePusherStyles
直播推流控件配置选项
属性:
- url: (String
	类型
)推流地址支持RTMP协议。 
- mode: (String
	类型
)推流视频模式可取值:SD(标清), HD(高清), FHD(超清)。 
- muted: (Boolean
	类型
)是否静音默认值为false。 
- enable-camera: (Boolean
	类型
)开启摄像头默认值为true。 
- auto-focus: (Boolean
	类型
)自动聚集默认值为true。 
- beauty: (Number
	类型
)是否美颜可取值0、1,其中0表示不使用美颜,1表示不使用美颜。 默认值为0(不使用美颜)。 
- whiteness: (Number
	类型
)是否美白可取值0、1、2、3、4、5,其中0表示不使用美白,其余值分别表示美白的程度,值越大美白程度越大。 默认值为0(不使用美白)。 
- aspect: (String
	类型
)宽高比可取值:3:4, 9:16。 
- min-bitrate: (Number
	类型
)最小码率默认值为200。 
- max-bitrate: (Number
	类型
)最大码率默认值为1000。 
- top: (String
	类型
)LivePusher控件左上角的垂直偏移量可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的高度; 自动计算,如"auto",根据height值自动计算,相对于父Webview窗口垂直居中。 
- left: (String
	类型
)LivePusher控件左上角的水平偏移量可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的宽度; 自动计算,如"auto",根据width值自动计算,相对于父Webview窗口水平居中。 默认值为"0px"。 
- width: (String
	类型
)LivePusher控件的宽度可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的宽度。 默认值为"100%"。 
- height: (String
	类型
)LivePusher控件的高度可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的高度。 默认值为"100%"。 
- position: (String
	类型
)LivePusher控件在Webview窗口的布局模式可取值: "static" - 静态布局模式,如果页面存在滚动条则随窗口内容滚动; "absolute" - 绝对布局模式,如果页面存在滚动条不随窗口内容滚动; 默认值为"static"。 
LivePusherEvents
直播推流控件事件类型
常量:
- "statechange": (String
	类型
)状态变化事件当推流连接服务器状态变化时触发。 事件回调函数参数event={type:"事件类型,此时为statechange",target:"触发此事件的直播推流控件对象",detail:{code:"状态码,参考后面状态码说明",message:"描述信息"}}。 其中code状态码: 1001 - 已经连接推流服务器; 1002 - 已经与服务器握手完毕,开始推流; 1003 - 打开摄像头成功; 1004 - 录屏启动成功; 1005 - 推流动态调整分辨率; 1006 - 推流动态调整码率; 1007 - 首帧画面采集完成; 1008 - 编码器启动; -1301 - 打开摄像头失败; -1302 - 打开麦克风失败; -1303 - 视频编码失败; -1304 - 音频编码失败; -1305 - 不支持的视频分辨率; -1306 - 不支持的音频采样率; -1307 - 网络断连,且经多次重连抢救无效,更多重试请自行重启推流; -1308 - 开始录屏失败,可能是被用户拒绝; -1309 - 录屏失败,不支持的Android系统版本,需要5.0以上的系统; -1310 - 录屏被其他应用打断了; -1311 - Android Mic打开成功,但是录不到音频数据; -1312 - 录屏动态切横竖屏失败; 1101 - 网络状况不佳:上行带宽太小,上传数据受阻; 1102 - 网络断连, 已启动自动重连; 1103 - 硬编码启动失败,采用软编码; 1104 - 视频编码失败; 1105 - 新美颜软编码启动失败,采用老的软编码; 1106 - 新美颜软编码启动失败,采用老的软编码; 3001 - RTMP -DNS解析失败; 3002 - RTMP服务器连接失败; 3003 - RTMP服务器握手失败; 3004 - RTMP服务器主动断开,请检查推流地址的合法性或防盗链有效期; 3005 - RTMP 读/写失败。 
- "netstatus": (String
	类型
)网络状态通知事件当推流的网络状态发生变化时触发。 事件回调函数参数event={type:"事件类型,此时为netstatus",target:"触发此事件的直播推流控件对象",detail:{videoBitrate:"视频码率",audioBitrate:"音频码率",videoFPS:"视频帧率",netSpeed:"推流网速",videoWidth:"视频宽度",videoHeight:"视频高度"}}。 
- "error": (String
	类型
)渲染错误事件当推流发生错误是触发。 事件回调函数参数event={type:"事件类型,此时为error",target:"触发此事件的直播推流控件对象",detail:{code:"错误编码,参考后面错误码说明",message:"描述信息"}}。 其中code错误码: 1001 - 用户禁止使用摄像头; 1002 - 用户禁止使用录音。 
VideoPlayerEventCallback
视频播放控件事件监听回调函数
void onEvent(event) {
	// Authenticate success code.
}
				
参数:
- event: 
		(
			JSON
			)
			可选 事件触发时返回的参数
 不同事件返回的参数不一样,详情参考VideoPlayerEvents事件说明。
返回值:
void : 无LivePusherEventCallback
视频播放控件事件监听回调函数
void onEvent(event) {
	// event code.
}
				
参数:
- event: 
		(
			JSON
			)
			可选 事件触发时返回的参数
 不同事件返回的参数不一样,详情参考LivePusherEvents事件说明。