plPlayer

openPlayer play pause resume stop switchPlayUrl getTotalDuration getCurrentTime addPlayerStatusListener seekTo setVolume getVolume setBrightness getBrightness hidePlayer showPlayer closePlayer setSpeed getScreenShot setRotationMode

概述

由于七牛不再维护此播放sdk,本模块已下架。

1.plPlayer 封装了七牛的PLPlayerKit视频播放插件。本模块只提供纯功能性接口。

2.可播放MP4,FLV,M3U8,rtmp类型的视频。

3.支持iOS 8.0 及以上版本。

openPlayer

打开视频播放器页面

openPlayer({params})

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. y: 0, //数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  4. w: 320, //数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度
  5. h: 300 //数字类型;模块的高度;默认值:300
  6. }

videoUrlPath:

isAutoPlay:

  • 类型:布尔型
  • 描述:(可选项)是否自动播放 (自动播放:true ; 不自动播放:false)(仅iOS支持,android可再addPlayerStatusListener接口 监听到ready后调用播放接口)
  • 默认值:true

timeoutIntervalForMediaPackets:

  • 类型:数字类型
  • 描述:(可选项)接收/发送数据包超时时间间隔所对应的键值,单位为 s ,默认配置为 10s,建议设置正数。设置的值小于等于 0 时,表示禁用超时,播放卡住时,将无超时回调,该参数仅对 rtmp/flv 直播生效
  • 默认值:10

maxL1BufferDuration:

  • 类型:数字类型
  • 描述:(可选项)一级缓存大小,单位为 ms,默认为 2000ms,增大该值可以减小播放过程中的卡顿率,但会增大弱网环境的最大累积延迟,该缓存存放的是网络层读取到的数据,为保证实时性,超过该缓存池大小的过期音频数据将被丢弃,视频将加速渲染追上音频,该参数仅对 rtmp/flv 直播生效
  • 默认值:2000

maxL2BufferDuration:

  • 类型:数字类型
  • 描述:(可选项)默认二级缓存大小,单位为 ms,默认为 300ms,增大该值可以减小播放过程中的卡顿率,但会增大弱网环境的最大累积延迟,该缓存存放的是解码之后待渲染的数据,如果该缓存池满,则二级缓存将不再接收来自一级缓存的数据,该参数仅对 rtmp/flv 直播生效
  • 默认值:300

isVideoToolbox:

  • 类型:布尔型
  • 描述:(可选项)是否使用 video toolbox 硬解码,使用 video toolbox Player 将尝试硬解码,失败后,将切换回软解码,该参数仅对 rtmp/flv 直播生效
  • 默认值:false

dNSManager:

  • 类型:字符串
  • 描述:(可选项)dns 查询,是否使用内置 DNS 解析,是否开启 DNS 解析,默认使用系统 API 解析,该参数仅对 rtmp/flv 直播生效

videoCacheFolderPath:

  • 类型:字符串
  • 描述:(可选项)视频缓存目录,默认为空,该属性仅对点播 mp4 有效, 当 videoCacheFolderPath 有值时,默认关闭 DNS 解析,支持fs

videoCacheExtensionName:

  • 类型:字符串
  • 描述:(可选项)视频缓存扩展名,该属性仅对点播 mp4 有效,需在视频缓存目录 videoCacheFolderPath 基础上设置

headUserAgent:

  • 类型:字符串
  • 描述:(可选项)该参数用于设置 http 的 header,不可包含 “\n” 或 “\r”,包含”\n” 或 “\r” 则设置无效,设置 http 的 header,需要以类似 @”key:value” 的方式,例如:给 http 的 header 添加 referer,则以 @”Referer:http://xxx.xxx.com“ 格式配置

backgroundPlayEnable:

  • 类型:布尔型
  • 描述:(可选项)是否支持后台播放,需要注意的是在后台播放时仅有音频,视频会在回到前台时继续播放。(android支持后台播放,但不支持此参数设置)
  • 默认值:true

loopPlay:

  • 类型:布尔型
  • 描述:(可选项)是否循环播放,该属性仅对点播有效。
  • 默认值:false

fixedOn:

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.openPlayer({
  3. rect:
  4. { x: 0,
  5. y : 0,
  6. w : 320,
  7. h: 250
  8. },
  9. videoUrlPath: 'http://resource.apicloud.com/video/apicloud3.mp4',
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

play

开始播放

play(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false;是否成功播放
  3. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.play(function(ret) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.pause();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resume

暂停后恢复播放

resume()

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.resume();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.stop();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

switchPlayUrl

同一个页面,已经调用play接口后,切换视频地址时调用(前提条件,同一界面已经调用过play接口)。

switchPlayUrl({params}, callback(ret, err))

params

url:

sameSource:

  • 类型:布尔类型
  • 描述:(可选项)是否是同种格式播放,同格式切换打开更快(当sameSource 为 true 时,视频格式与切换前视频格式不同时,会导致视频打开失败)(仅iOS支持)
  • 默认:true

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false;是否成功播放
  3. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.switchPlayUrl({
  3. url: '',
  4. }, function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getTotalDuration

获取视频的时长

getTotalDuration(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. duration : 10 //视频的总时长,单位秒
  3. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.getTotalDuration(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurrentTime

获取已经播放的时长

getCurrentTime(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. time : 6//已经播放的时长,单位秒
  3. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.getCurrentTime(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addPlayerStatusListener

添加播放状态监听

addPlayerStatusListener(callback(ret, err))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. eventType : 'playing', //字符串类型;事件类型
  3. //'unknow' : 未知状态,只会作为 init 后的初始状态,开始播放之后任何情况下都不会再回到此状态
  4. //'preparing' : 正在准备播放所需组件,在调用 -play 方法时出现。(仅iOS支持)
  5. //'ready' : 播放组件准备完成,准备开始播放,在调用 -play 方法时出现。
  6. //'open' : 播放组件准备完成,准备开始连接,请勿在此状态时,调用 switchPlayUrl 切换 URL 操作(仅iOS支持)
  7. //'caching' : 缓存数据为空状态(仅iOS支持)
  8. //'playing' : 正在播放状态(仅iOS支持)
  9. //'paused' : 暂停状态(仅iOS支持)
  10. //'stopped' : 停止状态(仅iOS支持)
  11. //'error' : 错误状态
  12. //'autoReconnecting' : 自动重连的状态(仅iOS支持)
  13. //'completed' : 播放完成(该状态只针对点播有效)
  14. //'connected': 连接成功 (仅android支持)
  15. //'videoBitrate': 视频码率统计成功(仅android支持)
  16. //'videoFPS':视频帧率统计成功(仅android支持)
  17. //'bufferingStart':开始缓冲(仅android支持)
  18. //'bufferingEnd':停止缓冲(仅android支持)
  19. error:{ //json对象,错误信息,eventType == error如果有错误信息就会返回该字段,否则不会返回
  20. code: , //数字类型;错误码
  21. msg: '' //字符串类型;错误信息(仅iOS支持)
  22. }
  23. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.addPlayerStatusListener(function(ret, err) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. } else {
  6. alert(JSON.stringify(err));
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekTo

快速定位到指定播放时间点,该方法仅在回放时起作用

seekTo({params})

params

time:

  • 类型:数字型
  • 描述:时间点,单位秒
  • 默认值:0

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.seekTo({
  3. time : 402334
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolume

设置音量 (注意:在iOS中,此接口设置的是播放器的音量,而不是系统音量)

setVolume({params})

params

volume:

  • 类型:数字型
  • 描述:(可选项)0-3.0
  • 默认值:0

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.setVolume({
  3. volume : 1.0
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVolume

获取播放器音量 注意:对于iOS来说:此接口只能获取播放器的音量,而不是系统的音量(仅iOS支持)

getVolume({params})

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. volume: 1 //数字类型;播放器音量大小
  3. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.getVolume(function(ret, err) {
  3. alert("音量"+JSON.stringify(ret));
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

setBrightness 设置屏幕亮度 在 iOS 平台上设置的是系统屏幕亮度 setBrightness({params}) ##params brightness: - 类型:数字 - 描述:(可选项)设置的屏幕的亮度,取值范围:0-100 - 默认值:80 ##示例代码 js var plPlayer = api.require('plPlayer'); plPlayer.setBrightness({ brightness: 50 }); ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本

getBrightness

获取当前屏幕亮度值 在 iOS 平台上获取的是系统屏幕亮度

getBrightness(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. brightness: //数字类型;当前屏幕亮度值
  3. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.getBrightness(function(ret, err) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hidePlayer

隐藏播放器

hidePlayer()

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.hidePlayer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

showPlayer

显示播放器

showPlayer()

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.showPlayer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closePlayer

关闭播放器

closePlayer()

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.closePlayer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setSpeed

倍速播放

setSpeed({params})

params

speed:

  • 类型:数字型
  • 描述:(可选项)设置视频播放倍速(取值范围 0.2-32)
  • 默认值:1.0

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.setSpeed({
  3. speed : 1.9
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getScreenShot

截屏

getScreenShot({params},callback(ret))

params

isSavedPhotosAlbum:

  • 类型:布尔类型
  • 描述:(可选项)是否存入相册(仅iOS支持)
  • 默认值:true

delayTime:

  • 类型:数字类型
  • 描述:(可选项)延时毫秒数,延时此毫秒数后截屏
  • 默认值:0

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true|false //布尔型;截屏成功/失败
  3. path:'', //字符串类型;截屏图片存储路径
  4. }

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.getScreenShot({
  3. isSavedPhotosAlbum:true
  4. },function(ret) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRotationMode

设置画面旋转模式(该属性仅对 rtmp/flv 直播与 ffmpeg 点播有效)

setRotationMode({params})

params

rotationMode:

  • 类型:数字类型
  • 描述:(可选项)画面旋转模式,0:无旋转,1:向左旋,2:向右旋,3:垂直翻转,4:水平翻转,5:旋转 180 度
  • 默认值:0

示例代码

  1. var plPlayer = api.require('plPlayer');
  2. plPlayer.setRotationMode({
  3. rotationMode:5
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本