plPlayer

概述

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

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

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

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

openPlayer

打开视频播放器页面

openPlayer({params})

params

rect:

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

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(不随之滚动)

示例代码

var plPlayer = api.require('plPlayer');
plPlayer.openPlayer({
    rect:
    {    x: 0,
        y : 0,
        w : 320,
        h: 250
    },
    videoUrlPath: 'http://resource.apicloud.com/video/apicloud3.mp4',
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

play

开始播放

play(callback(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resume

暂停后恢复播放

resume()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

var plPlayer = api.require('plPlayer');
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对象
  • 内部字段:
{
    status: true   //布尔型;true||false;是否成功播放
}

示例代码

var plPlayer = api.require('plPlayer');
plPlayer.switchPlayUrl({
    url: '',
}, function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getTotalDuration

获取视频的时长

getTotalDuration(callback(ret, err))

callback(ret, err)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurrentTime

获取已经播放的时长

getCurrentTime(callback(ret, err))

callback(ret, err)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addPlayerStatusListener

添加播放状态监听

addPlayerStatusListener(callback(ret, err))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
       eventType : 'playing',  //字符串类型;事件类型
          //'unknow' : 未知状态,只会作为 init 后的初始状态,开始播放之后任何情况下都不会再回到此状态
         //'preparing' : 正在准备播放所需组件,在调用 -play 方法时出现。(仅iOS支持)
         //'ready' : 播放组件准备完成,准备开始播放,在调用 -play 方法时出现。
         //'open' : 播放组件准备完成,准备开始连接,请勿在此状态时,调用 switchPlayUrl 切换 URL 操作(仅iOS支持)
         //'caching' : 缓存数据为空状态(仅iOS支持)
         //'playing' : 正在播放状态(仅iOS支持)
         //'paused' : 暂停状态(仅iOS支持)
         //'stopped' : 停止状态(仅iOS支持)
         //'error' : 错误状态
         //'autoReconnecting' : 自动重连的状态(仅iOS支持)
         //'completed' : 播放完成(该状态只针对点播有效)
       //'connected':  连接成功 (仅android支持)
       //'videoBitrate':  视频码率统计成功(仅android支持)
       //'videoFPS':视频帧率统计成功(仅android支持)
       //'bufferingStart':开始缓冲(仅android支持)
       //'bufferingEnd':停止缓冲(仅android支持)

         error:{   //json对象,错误信息,eventType == error如果有错误信息就会返回该字段,否则不会返回
           code:   ,         //数字类型;错误码
         msg: ''           //字符串类型;错误信息(仅iOS支持)
         }

}

示例代码

var plPlayer = api.require('plPlayer');
plPlayer.addPlayerStatusListener(function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekTo

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

seekTo({params})

params

time:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolume

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

setVolume({params})

params

volume:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVolume

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

getVolume({params})

callback(ret, err)

ret:

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

示例代码

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

可用性

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 对象
  • 内部字段:
{
    brightness:            //数字类型;当前屏幕亮度值
}

示例代码

var plPlayer = api.require('plPlayer');
plPlayer.getBrightness(function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } 
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hidePlayer

隐藏播放器

hidePlayer()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

showPlayer

显示播放器

showPlayer()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closePlayer

关闭播放器

closePlayer()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setSpeed

倍速播放

setSpeed({params})

params

speed:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getScreenShot

截屏

getScreenShot({params},callback(ret))

params

isSavedPhotosAlbum:

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

delayTime:

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

callback(ret)

ret:

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

示例代码

var plPlayer = api.require('plPlayer');
plPlayer.getScreenShot({
   isSavedPhotosAlbum:true
},function(ret) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRotationMode

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

setRotationMode({params})

params

rotationMode:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本