open play pause stop reset replay show hide close seek info getSupportedBitrates bitrateIndex setBitrateIndex scalingMode naturalSize playbackRate downloadSpeed forward rewind thumbnailImageAtCurrentTime clearCache full cancelFull isFull setRect setWatermark addEventListener addProgressListener removeProgressListener enterBackground enterForeground
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
1、用户在使用SDK之前需要获取百度云Access Key, 参考 安全认证页面 获取AK,如果未登录会提示登录。
2、bPlayer 封装了百度云播放器 SDK。本插件为无UI方案,打开后为一个纯播放器界面。百度云播放器突破 Android、iOS 平台对视频格式的限制,支持目前所有主流的媒体格式(mp4、avi、wmv、flv、mkv、mov、 rmvb 等)。
3、本播放器全屏时为横屏显示,支持屏幕随设备自动旋转。
4、支持iOS 7.0 及以上版本。
iOS端http请求配置
iOS端需要配置ATS(App Transport Security),具体配置方法参考[APP开发技巧] 【官方】iOS修改Info.plist 中“三.3. 配置ATS(App Transport Security)”
使用此插件之前iOS端需先在 config.xml文件配置基础环境属性,方法如下
名称:bPlayer
参数:AccessKey
配置示例:
<feature name="bPlayer">
<param name="AccessKey" value="724c9abc6cd9403daece9d4d17c3e31b"/>
</feature>
字段描述:
AccessKey:百度云Access Key。
本接口进行视频播放器初始化相关工作,可设置是否自动播放
open({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;插件的宽度;默认值:auto
h: 200 //(可选项)数字类型;插件的高度;默认值:auto
}
path:
autoPlay:
enableLooping:
pauseInBackground:(Android无此字段)
initialPlaybackTime:
fixedOn:
fixed:
ret:
{
status : true //布尔类型;是否成功,true|false
}
var bPlayer = api.require('bPlayer');
bPlayer.open({
rect:{
x: 0,
y: 0,
w: 300,
h: 200,
}, path : 'fs://res/fixvideo.mp4',
autoPlay : false,
},function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
当在open方法设置非自动播放,或是暂停之后,调用本方法进行播放
play()
var bPlayer = api.require('bPlayer');
bPlayer.play();
iOS、Android系统
可提供的1.0.0及更高版本
暂停播放
pause()
var bPlayer = api.require('bPlayer');
bPlayer.pause();
iOS、Android系统
可提供的1.0.0及更高版本
停止播放
stop()
var bPlayer = api.require('bPlayer');
bPlayer.stop();
iOS、Android系统
可提供的1.0.0及更高版本
重置,使播放器回到初始状态。需在stop调用之后再调用reset,reset调用之后可以重新指定播放地址
reset({params})
clearCanvasWhenReset:
var bPlayer = api.require('bPlayer');
bPlayer.reset({
clearCanvasWhenReset : true
});
iOS、Android系统
可提供的1.0.0及更高版本
重新播放指定播放地址。调用replay前,需要先调用stop停止当前视频的播放,再调用reset,reset播放器到初始状态
replay({params}, callback(ret))
path:
autoPlay:
enableLooping:
pauseInBackground:
initialPlaybackTime:
ret:
{
status : true //布尔类型;是否成功,true|false
}
var bPlayer = api.require('bPlayer');
bPlayer.replay({
path : 'widget://res/fixvideo.mp4',
autoPlay : false,
},function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示视频播放视图
show()
var bPlayer = api.require('bPlayer');
bPlayer.show();
iOS、Android系统
可提供的1.0.0及更高版本
隐藏视频播放视图,不会改变播放器播放状态
hide()
var bPlayer = api.require('bPlayer');
bPlayer.hide();
iOS、Android系统
可提供的1.0.0及更高版本
关闭播放器
close()
var bPlayer = api.require('bPlayer');
bPlayer.close();
iOS、Android系统
可提供的1.0.0及更高版本
快速定位播放位置
seek({params})
currentPlaybackTime:
var bPlayer = api.require('bPlayer');
bPlayer.seek({
currentPlaybackTime : 20
});
iOS、Android系统
可提供的1.0.0及更高版本
获取视频的总时长、视频播放到的时刻、视频的可播放长度。调用info前,需要先调用open
info(callback(ret))
ret:
{
duration :60 //数字类型;视频的总时长。单位秒(当为直播视频时,duration的值可能为0)
currentPlaybackTime :60 //数字类型;视频播放到的时刻。单位秒
playableDuration :60 //数字类型;视频的可播放长度。单位秒,可播放长度 = 当前视频播放到的位置 + 已缓冲长度
}
var bPlayer = api.require('bPlayer');
bPlayer.info(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取多码率列表。如果返回数组中元素个数小于2,表示不是一个多码率HLS视频
getSupportedBitrates(callback(ret))
ret:
{
bitrates : //数组类型;多码率列表集合
[
{ //JSON对象;多码率列表
resolution : //JSON对象;分辨率
{
width : //数字类型;
height : //数字类型;
}
bitrate : //数字类型;码率
}
]
}
var bPlayer = api.require('bPlayer');
bPlayer.getSupportedBitrates(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取当前码率索引
bitrateIndex(callback(ret))
ret:
{
bitrateIndex : //数字类型;当前码率索引
}
var bPlayer = api.require('bPlayer');
bPlayer.bitrateIndex(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置当前码率索引
setBitrateIndex({params})
bitrateIndex:
var bPlayer = api.require('bPlayer');
bPlayer.setBitrateIndex({
bitrateIndex : 298000
});
iOS、Android系统
可提供的1.0.0及更高版本
视频显示的缩放模式
scalingMode({params})
scalingMode:
类型:字符串类型
描述:(可选项)缩放模式
取值范围:
'None' : 不缩放;
'AspectFit' : 等比缩放,可能会产生黑边;
'AspectFill' : 等比填充,可能有部分画面被裁减;
'Fill' : 铺满整个视图
默认:'AspectFit'
var bPlayer = api.require('bPlayer');
bPlayer.scalingMode({
scalingMode : 'AspectFill'
});
iOS、Android系统
可提供的1.0.0及更高版本
视频的原始分辨率大小。调用naturalSize前需要先调用open
naturalSize(callback(ret))
ret:
{
width : //数字类型;单位像素
height : //数字类型;单位像素
}
var bPlayer = api.require('bPlayer');
bPlayer.naturalSize(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置视频播放速率
playbackRate({params})
playbackRate:
var bPlayer = api.require('bPlayer');
bPlayer.playbackRate({
playbackRate : 2.0
});
iOS、Android系统
可提供的1.0.0及更高版本
网络视频下载速度
downloadSpeed(callback(ret))
ret:
{
downloadSpeed : //数字类型;网络视频下载速度。单位Bps
}
var bPlayer = api.require('bPlayer');
bPlayer.downloadSpeed(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
快进
forward({params})
seconds:
var bPlayer = api.require('bPlayer');
bPlayer.forward({
seconds : 6.0
});
iOS、Android系统
可提供的1.0.0及更高版本
快退
rewind({params})
seconds:
var bPlayer = api.require('bPlayer');
bPlayer.rewind({
});
iOS、Android系统
可提供的1.0.0及更高版本
截图,对当前帧进行截图
thumbnailImageAtCurrentTime(callback(ret))
ret:
{
destPath : '' //字符串类型;截图保存路径
}
var bPlayer = api.require('bPlayer');
bPlayer.thumbnailImageAtCurrentTime(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
清除截图缓存
clearCache()
var bPlayer = api.require('bPlayer');
bPlayer.clearCache();
iOS系统,Android系统
可提供的1.0.0及更高版本
全屏
full()
var bPlayer = api.require('bPlayer');
bPlayer.full();
iOS系统,Android系统
可提供的1.0.0及更高版本
取消全屏
cancelFull()
var bPlayer = api.require('bPlayer');
bPlayer.cancelFull();
iOS系统,Android系统
可提供的1.0.0及更高版本
是否全屏状态
isFull(callback(ret))
ret:
{
isFull : true //布尔类型;是否全屏
}
var bPlayer = api.require('bPlayer');
bPlayer.isFull(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置视频播放器位置、尺寸
setRect({params})
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:open中设置的x坐标
y: 0, //(可选项)数字类型;(可选项)插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:open中设置的y坐标
w: 300, //(可选项)数字类型;插件的宽度;默认值:open中设置的宽度
h: 200 //(可选项)数字类型;插件的高度;默认值:open中设置的高度
}
var bPlayer = api.require('bPlayer');
bPlayer.setRect({
rect:{
x: 0,
y: 0,
w: 300,
h: 200,
},
});
iOS、Android系统
可提供的1.0.0及更高版本
setWatermark({params})
origin:
{
x: 0, //(可选项)数字类型;水印图片位置左上角的 x 坐标(相对于播放器视图);默认值:0
y: 0, //(可选项)数字类型;水印图片位置左上角的 y 坐标(相对于播放器视图);默认值:0
}
path:
var bPlayer = api.require('bPlayer');
bPlayer.setWatermark({
origin : {
x : 10,
y : 10
},
path : 'widget://res/tab-01.png'
});
iOS系统
可提供的1.0.0及更高版本
添加事件监听(手势只有当全屏时有效)
addEventListener({params}, callback(ret))
name:
[
'all' : 全部事件;
'leftUp' : 播放器靠左的二分之一内的上滑事件,每滑动5(百分比)回调执行一次;
'leftDown' : 播放器靠左的二分之一内的下滑事件,每滑动5(百分比)回调执行一次;
'rightUp' : 播放器靠右的二分之一内的上滑事件,每滑动5(百分比)回调执行一次;
'rightDown' : 播放器靠右的二分之一内的下滑事件,每滑动5(百分比)回调执行一次;
'swipeLeft' : 播放器上的左滑事件,每滑动5(百分比)回调执行一次;
'swipeRight' : 播放器上的右滑事件,每滑动5(百分比)回调执行一次;
'click' : 点击播放器事件(单击手势);
'doubleClick' : 双击播放器事件(单击手势);
'playbackState' : 播放器的当前状态。包括其它(other)、播放(playing)、暂停(paused)、中断(interrupted)、快进或快退(seekingForward)、播放完成(complete)、发生错误播放结束(error)、手动停止(stopped);
'loadState' : 播放器的当前加载状态。包括其它状态(otherState)、未知状态(unknown)、可播放状态(playable)、缓冲完成,可以开始播放(playthroughOK)、缓冲中(stalled);
]
ret:
{
eventType : 'swipeRight' //字符串类型;事件类型
//取值范围:
//'leftUp' : 播放器靠左的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
//'leftDown' : 播放器靠左的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
//'rightUp' : 播放器靠右的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
//'rightDown' : 播放器靠右的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
//'swipeLeft' : 播放器上的左滑事件,每滑动5(百分比)回调执行一次
//'swipeRight' : 播放器上的右滑事件,每滑动5(百分比)回调执行一次
//'click' : 点击播放器事件(单击手势)
//'doubleClick' : 双击播放器事件(单击手势)
//'other' : 其它(对应事件类型'playbackState')(Android无此字段)
//'playing' : 播放(对应事件类型'playbackState')
//'paused' : 暂停(对应事件类型'playbackState')
//'preparing' : 正在准备播放内容(对应事件类型'playbackState')(ios无此字段)
//'prepared' : 播放内容准备完成(对应事件类型'playbackState')(ios无此字段)
//'interrupted' : 中断(对应事件类型'playbackState')(Android无此字段)
//'seekingForward' : 快进或快退(对应事件类型'playbackState')
//'complete' : 播放完成(对应事件类型'playbackState')
//'error' : 发生错误播放结束(对应事件类型'playbackState')
//'stopped' : 手动停止(对应事件类型'playbackState')
//'otherState' : 其它状态(对应事件类型'loadState')
//'unknown' : 未知状态(对应事件类型'loadState')
//'playable' : 可播放状态(对应事件类型'loadState')
//'playthroughOK' : 缓冲完成,可以开始播放(对应事件类型'loadState')
//'stalled' : 缓冲中(对应事件类型'loadState')
}
var bPlayer = api.require('bPlayer');
bPlayer.addEventListener({
name : ['all','rightUp','click','playbackState']
},
function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
添加进度监听,可指定播放进度或缓冲进度
addProgressListener({params}, callback(ret))
name:
ret:
{
currentPlaybackTime : 0 //数字类型;视频播放到的时刻,单位秒,仅当 name 为 'playing' 时返回此字段
playableDuration : 0 //数字类型;视频的可播放长度,单位秒,可播放长度 = 当前视频播放到的位置 + 已缓冲长度,仅当 name 为 'buffering' 时返回此字段
}
var bPlayer = api.require('bPlayer');
bPlayer.addProgressListener({
name : 'playing'
},function(ret) {
if (ret) {
api.toast({
msg: JSON.stringify(ret)
});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除进度监听,可指定播放进度或缓冲进度
removeProgressListener({params})
name:
var bPlayer = api.require('bPlayer');
removeProgressListener({
name : 'playing'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
进入后台的调用方法
enterBackground()
var demo = api.require("bPlayer");
demo.enterBackground();
Android系统
可提供的1.0.0及更高版本
从后台进入前台调用的方法;
enterForeground()
var demo = api.require("bPlayer");
demo.enterForeground();
Android系统
可提供的1.0.0及更高版本