bPlayer
来自于:开发者立即使用
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
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
本接口进行视频播放器初始化相关工作,可设置是否自动播放
open({params}, callback(ret))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)播放器的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;模块的宽度;默认值:auto
h: 200 //(可选项)数字类型;模块的高度;默认值:auto
}
path:
- 类型:字符串类型
- 描述:视频资源地址,支持网络和本地路径(fs://)
- 默认:无
autoPlay:
- 类型:布尔类型
- 描述:(可选项)是否自动播放。如果设置为true,播放器完成视频初始化后会自动播放视频;如果设置为false,播放器完成视频初始化后,需要开发者主动调用play方法来播放视频
- 默认:true
enableLooping:
- 类型:布尔类型
- 描述:(可选项)设置是否循环播放
- 默认:false
pauseInBackground:(Android无此字段)
- 类型:布尔类型
- 描述:(可选项)设置App进入后台后,再次打开时播放器的状态是否为暂停播放
- 默认:false
initialPlaybackTime:
- 类型:数字类型
- 描述:(可选项)视频开始播放的时刻,单位秒
- 默认:0秒
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔类型
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认:true(不随之滚动)
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
play
当在open方法设置非自动播放,或是暂停之后,调用本方法进行播放
play()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.play();
可用性
iOS、Android系统
可提供的1.0.0及更高版本
pause
暂停播放
pause()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.pause();
可用性
iOS、Android系统
可提供的1.0.0及更高版本
stop
停止播放
stop()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.stop();
可用性
iOS、Android系统
可提供的1.0.0及更高版本
reset
重置,使播放器回到初始状态。需在stop调用之后再调用reset,reset调用之后可以重新指定播放地址
reset({params})
params
clearCanvasWhenReset:
- 类型:布尔类型
- 描述:(可选项)在reset时是否清除画布内容(指上次播放视频的画面内容)
- 默认:false
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.reset({
clearCanvasWhenReset : true
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
replay
重新播放指定播放地址。调用replay前,需要先调用stop停止当前视频的播放,再调用reset,reset播放器到初始状态
replay({params}, callback(ret))
params
path:
- 类型:字符串类型
- 描述:视频资源地址,支持网络和本地路径(fs://)
- 默认:无
autoPlay:
- 类型:布尔类型
- 描述:(可选项)是否自动播放。如果设置为true,播放器完成视频初始化后会自动播放视频;如果设置为false,播放器完成视频初始化后,需要开发者主动调用play方法来播放视频
- 默认:true
enableLooping:
- 类型:布尔类型
- 描述:(可选项)设置是否循环播放
- 默认:false
pauseInBackground:
- 类型:布尔类型
- 描述:(可选项)设置App进入后台后,再次打开时播放器的状态是否为暂停播放
- 默认:false
initialPlaybackTime:
- 类型:数字类型
- 描述:(可选项)视频开始播放的时刻,单位秒
- 默认:0秒
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status : true //布尔类型;是否成功,true|false
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.replay({
path : 'widget://res/fixvideo.mp4',
autoPlay : false,
},function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
show
显示视频播放视图
show()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.show();
可用性
iOS、Android系统
可提供的1.0.0及更高版本
hide
隐藏视频播放视图,不会改变播放器播放状态
hide()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.hide();
可用性
iOS、Android系统
可提供的1.0.0及更高版本
close
关闭播放器
close()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.close();
可用性
iOS、Android系统
可提供的1.0.0及更高版本
seek
快速定位播放位置
seek({params})
params
currentPlaybackTime:
- 类型:数字类型
- 描述:(可选项)播放位置,单位秒
- 默认:0秒
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.seek({
currentPlaybackTime : 20
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
info
获取视频的总时长、视频播放到的时刻、视频的可播放长度。调用info前,需要先调用open
info(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
duration :60 //数字类型;视频的总时长。单位秒(当为直播视频时,duration的值可能为0)
currentPlaybackTime :60 //数字类型;视频播放到的时刻。单位秒
playableDuration :60 //数字类型;视频的可播放长度。单位秒,可播放长度 = 当前视频播放到的位置 + 已缓冲长度
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.info(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getSupportedBitrates
获取多码率列表。如果返回数组中元素个数小于2,表示不是一个多码率HLS视频
getSupportedBitrates(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
bitrates : //数组类型;多码率列表集合
[
{ //JSON对象;多码率列表
resolution : //JSON对象;分辨率
{
width : //数字类型;
height : //数字类型;
}
bitrate : //数字类型;码率
}
]
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.getSupportedBitrates(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
bitrateIndex
获取当前码率索引
bitrateIndex(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
bitrateIndex : //数字类型;当前码率索引
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.bitrateIndex(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBitrateIndex
设置当前码率索引
setBitrateIndex({params})
params
bitrateIndex:
- 类型:数字类型
- 描述:码率索引
- 默认:无
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.setBitrateIndex({
bitrateIndex : 298000
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
scalingMode
视频显示的缩放模式
scalingMode({params})
params
scalingMode:
- 类型:字符串类型
- 描述:(可选项)缩放模式
取值范围:
'None' : 不缩放;
'AspectFit' : 等比缩放,可能会产生黑边;
'AspectFill' : 等比填充,可能有部分画面被裁减;
'Fill' : 铺满整个视图
- 默认:'AspectFit'
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.scalingMode({
scalingMode : 'AspectFill'
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
naturalSize
视频的原始分辨率大小。调用naturalSize前需要先调用open
naturalSize(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
width : //数字类型;单位像素
height : //数字类型;单位像素
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.naturalSize(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
playbackRate
设置视频播放速率
playbackRate({params})
params
playbackRate:
- 类型:数字类型
- 描述:(可选项)播放速率
- 取值范围:[0.0, 4.0]
- 默认:1.0
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.playbackRate({
playbackRate : 2.0
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
downloadSpeed
网络视频下载速度
downloadSpeed(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
downloadSpeed : //数字类型;网络视频下载速度。单位Bps
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.downloadSpeed(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
forward
快进
forward({params})
params
seconds:
- 类型:数字类型
- 描述:(可选项)快进的秒数
- 默认:2秒
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.forward({
seconds : 6.0
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
rewind
快退
rewind({params})
params
seconds:
- 类型:数字类型
- 描述:(可选项)快退的秒数
- 默认:2秒
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.rewind({
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
thumbnailImageAtCurrentTime
截图,对当前帧进行截图
thumbnailImageAtCurrentTime(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
destPath : '' //字符串类型;截图保存路径
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.thumbnailImageAtCurrentTime(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
clearCache
清除截图缓存
clearCache()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.clearCache();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
full
全屏
full()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.full();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelFull
取消全屏
cancelFull()
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.cancelFull();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isFull
是否全屏状态
isFull(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
isFull : true //布尔类型;是否全屏
}
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.isFull(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRect
设置视频播放器位置、尺寸
setRect({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)播放器的位置及尺寸
- 内部字段:
{
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
setWatermark({params})
params
origin:
- 类型:JSON 对象
- 描述:(可选项)水印图片位置
- 内部字段:
{
x: 0, //(可选项)数字类型;水印图片位置左上角的 x 坐标(相对于播放器视图);默认值:0
y: 0, //(可选项)数字类型;水印图片位置左上角的 y 坐标(相对于播放器视图);默认值:0
}
path:
- 类型:字符串类型
- 描述:用于设置水印的图片路径,要求本地路径(widget://、fs://)
- 默认:无
示例代码
var bPlayer = api.require('bPlayer');
bPlayer.setWatermark({
origin : {
x : 10,
y : 10
},
path : 'widget://res/tab-01.png'
});
可用性
iOS系统
可提供的1.0.0及更高版本
addEventListener
添加事件监听(手势只有当全屏时有效)
addEventListener({params}, callback(ret))
params
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);
]
- 默认:全部事件
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addProgressListener
添加进度监听,可指定播放进度或缓冲进度
addProgressListener({params}, callback(ret))
params
name:
- 类型:字符串类型
- 描述:(可选项)监听的事件类型
- 默认:playing
- 取值范围: playing :播放进度; buffering :缓冲进度;
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
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
移除进度监听,可指定播放进度或缓冲进度
removeProgressListener({params})
params
name:
- 类型:字符串类型
- 描述:(可选项)监听的事件类型
- 默认:playing
- 取值范围: playing :播放进度; buffering :缓冲进度;
示例代码
var bPlayer = api.require('bPlayer');
removeProgressListener({
name : 'playing'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
enterBackground
进入后台的调用方法
enterBackground()
示例代码
var demo = api.require("bPlayer");
demo.enterBackground();
可用性
Android系统
可提供的1.0.0及更高版本
enterForeground
从后台进入前台调用的方法;
enterForeground()
示例代码
var demo = api.require("bPlayer");
demo.enterForeground();
可用性
Android系统
可提供的1.0.0及更高版本