plPlayer

概述

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

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

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

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

openPlayer

打开视频播放器页面

openPlayer({params})

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:

videoUrlPath:

  • 类型:字符串
  • 描述:视频资源地址,支持fs://、widget://、rtmp://、

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:

  • 类型:字符串
  • 描述:视频资源地址,支持fs://、widget://、rtmp://、

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. 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//已经播放的时长,单位秒

示例代码

  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. //'playing' : 正在播放状态(仅iOS支持)
  8. //'paused' : 暂停状态(仅iOS支持)
  9. //'stopped' : 停止状态(仅iOS支持)
  10. //'error' : 错误状态
  11. //'autoReconnecting' : 自动重连的状态(仅iOS支持)
  12. //'completed' : 播放完成(该状态只针对点播有效)
  13. //'connected': 连接成功 (仅android支持)
  14. //'videoBitrate': 视频码率统计成功(仅android支持)
  15. //'videoFPS':视频帧率统计成功(仅android支持)
  16. //'bufferingStart':开始缓冲(仅android支持)
  17. //'bufferingEnd':停止缓冲(仅android支持)
  18. error:{ //json对象,错误信息,eventType == error如果有错误信息就会返回该字段,否则不会返回
  19. code: , //数字类型;错误码
  20. msg: '' //字符串类型;错误信息(仅iOS支持)
  21. }
  22. }

示例代码

  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. time : 402334
  3. });

可用性

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支持)

callback(ret, err)

ret:

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

示例代码

可用性

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))

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));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRotationMode

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

setRotationMode({params})

params

rotationMode:

  • 类型:数字类型
  • 默认值:0

可用性

iOS系统,Android系统