- bPlayer
- 论坛示例
- 概述
- 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
bPlayer
来自于:开发者立即使用
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
本接口进行视频播放器初始化相关工作,可设置是否自动播放
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及更高版本