tencentPlayers

腾讯云直播播放器

该插件可以实现腾讯云直播拉流播放,支持画面调整、播放控制、消息接收、屏幕截图、截流录制、清晰度无缝切换和直播回看。

接口列表

腾讯云点播播放器

该播放器可以支持云点播播放,可以支持画面设置、播放控制、屏幕截图、变速播放、本地缓存、预加载、贴片广告、加密播放、HTTP-REF、硬件加速和多码率支持等。

接口列表

技术支持

扫码获取技术支持,引导您跑通Demo和插件接入:

技术支持

技术支持微信号: ruanyunkeji006

论坛示例

论坛中有我们的使用教程以及示例代码,您可以Demo进入查看详情,联系上方我们技术支持协助接入测试。

接口列表

初始化与监听

接口列表 功能
init 初始化
setPlayerListener 设置播放监听器
removePlayerListener 移除播放监听
destroy 销毁播放器

基本控制

接口列表 功能
start 启动从指定URL播放音视频流
isPlaying 获取当前播放状态
pause 暂停播放
resume 继续播放
stop 停止播放音视频流

视频相关

接口列表 功能
setRenderMode 设置画面的裁剪模式
setRenderRotation 设置画面的方向
setHwAcc 开启硬件加速
switchStream 清晰度切换

音频相关

接口列表 功能
setMute 设置是否静音
setVolume 设置音量
setAudioRoute 设置声音播放模式
setVolumeEvaluationListener 设置音量大小评估监听
removeVolumeEvaluationListener 移除音量大小评估监听
enableVolumeEvaluation 启用音量大小评估

视频录制

接口列表 功能
setRecordListener 设置录制监听器
removeRecordListener 移除录制监听
startRecord 开始视频录制
stopRecord 停止录制
snapshot 播放器截图

直播时移

接口列表 功能
prepareLiveSeek 直播时移准备
seek 直播时移跳转
resumeLive 恢复直播服务

插件接口

init

初始化拉流播放器

init({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.init({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setPlayerListener

设置播放监听

setPlayerListener(({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onConnectSuccessEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称, 详见回调事件

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

##代码示例

livePlayer.setPlayerListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#removePlayerListener

移除播放监听

removePlayerListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.removePlayerListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroy

销毁

destroy({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.destroy({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#start

启动从指定 URL 播放音视频流

start({params}, function(ret, err))

params

flvUrl:

  • 类型: 字符串类型
  • 描述: (必填项) 完整的url

rect:

  • 类型: JSON对象
  • 描述: (必填项) 视频显示区域的位置和大小

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.start({
    rect: {
        x: 0, 
        y: 0, 
        w: self.playerWidth, 
        h: self.playerHeight
    },
    flvUrl: 'http://xxx.xxx.xxx/xxx.flv'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#isPlaying

是否正在播放

isPlaying({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    isPlaying: true
}
  • 字段详情:

isPlaying:

  • 类型: 布尔类型
  • 描述: true表示拉流中, false表示没有拉流

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.isPlaying({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#pause

暂停播放

此接口会暂停数据拉流,不会销毁播放器,暂停后,播放器会显示最后一帧数据图像

pause({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.pause({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#resume

继续播放

resume({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.resume({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#stop

销毁播放器及其视图

stop({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.stop({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setRenderMode

设置画面的裁剪模式

setRenderMode({params}, function(ret, err))

params

mode:

  • 类型: 整数类型
  • 描述: (必填项) 裁剪模式
  • 取值范围:
    • 0: 图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉
    • 1: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setRenderMode({
    mode: 0
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setRenderRotation

设置画面的方向

setRenderRotation({params}, function(ret, err))

params

rotation:

  • 类型: 整数类型
  • 描述: (必填项) 方向
  • 取值范围: [0 ~ 3]
    • 0: HOME 键在右边,横屏模式
    • 1: HOME 键在下面,手机直播中最常见的竖屏直播模式
    • 2: HOME 键在左边,横屏模式
    • 3: HOME 键在上边,竖屏直播(适合小米 MIX2)

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setRenderRotation({
    rotation: 1
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

#setHwAcc

是否开启硬件加速

setHwAcc({params}, function(ret, err))

params

enable:

  • 类型: 布尔类型
  • 描述: (必填项) true表示开启硬件加速, false表示禁用硬件加速
  • 默认值: false

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setHwAcc({
    isHwAcc: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#switchStream

FLV 直播无缝切换

switchStream({params}, function(ret, err))

params

url:

  • 类型: 字符串类型
  • 描述: (必填项) 播放地址

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.switchStream({
    url: self.switchUrl
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setMute

设置静音

setMute({params}, function(ret, err))

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) 是否静音
  • 默认值: true

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setMute({
    isMute: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setVolume

设置音量

setVolume({params}, function(ret, err))

params

volume:

  • 类型: 整数类型
  • 描述: (必填项) 音量大小
  • 取值范围: [0 - 100]

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setVolume({
    volume: self.volume
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setAudioRoute

设置声音播放模式(切换扬声器,听筒)

setAudioRoute({params}, function(ret, err))

params

mode:

  • 类型: 整数类型
  • 描述: (必填项) 声音播放模式
  • 取值范围:
    • 0: 扬声器,位于手机底部,声音偏大,适合外放音乐
    • 1: 听筒,位于手机顶部,声音偏小,适合通话

callback(ret)

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setAudioRoute({
    mode: self.audioRoute
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setVolumeEvaluationListener

设置音量大小回调接口

setVolumeEvaluationListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onAudioVolumeEvaluationNotify',
    volume: 112
}
  • 字段详情:

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称
  • 取值范围:
    • onAudioVolumeEvaluationNotify: 音量回调

volume:

  • 类型: 整数类型
  • 描述: 音量大小

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setVolumeEvaluationListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#removeVolumeEvaluationListener

移除音量大小回调

removeVolumeEvaluationListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.removeVolumeEvaluationListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#enableVolumeEvaluation

启用音量大小提示

enableVolumeEvaluation({params}, function(ret, err))

开启后会在 setVolumeEvaluationListener 中获取到 SDK 对音量大小值的评估。

params

interval:

  • 类型: 整数类型
  • 描述: (必填项) 决定了回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.enableVolumeEvaluation({
    interval: 300
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setRecordListener

设置短视频录制回调

setRecordListener({params}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onRecordProgress',
    progress: 113
}
  • 字段详情:

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称
  • 取值范围:
    • onRecordEvent: 录制事件
    • onRecordProgress: 录制进度
    • onRecordComplete: 录制结束

progress:

  • 类型: 整数类型
  • 描述: 录制进度

result:

  • 类型: JSON对象
  • 描述: 录制结果
{
    coverImage: 'xxxx',
    videoPath: 'xxxx'
}

coverImage:

  • 类型: 字符串类型
  • 描述: 封面图片路径

videoPath:

  • 类型: 字符串类型
  • 描述: 录制的视频路径

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.setRecordListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#removeRecordListener

移除录制监听

removeRecordListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.removeRecordListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#startRecord

开始录制短视频

startRecord({params}, function(ret, err))

params

type:

  • 类型: 整数类型
  • 描述: (必填项) 录制类型
  • 取值范围: 0

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.startRecord({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#stopRecord

结束录制短视频

stopRecord({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.stopRecord({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#snapshot

截屏

snapshot({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    path: '/livePlayer/snapshot/snapshot_xxx.png'
}
  • 字段详情:

path:

  • 类型: 字符串类型
  • 描述: 生成截图的路径

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.snapshot({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#prepareLiveSeek

直播时移准备,拉取该直播流的起始播放时间。

prepareLiveSeek({params}, function(ret, err))

使用时移功能需在播放开始后调用此方法,否则时移失败。

警告:

非腾讯云直播地址不能时移

params

appId:

  • 类型: 字符串类型
  • 描述: (必填项) 应用Id

domain:

  • 类型: 字符串类型
  • 描述: (必填项) 时移域名

bizid:

  • 类型: 整数类型
  • 描述: (必填项) 流bizid

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.prepareLiveSeek({
    appId: 134321,
    domain: 'http://xxx.xxx.xxx/xxx',
    bizid: 98
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#seek

播放跳转到音视频流某个时间

seek({params}, function(ret, err))

params

second:

  • 类型: 整数类型
  • 描述: (必填项) 流时间,单位为秒

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.liveSeek({
    second: 50
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#resumeLive

停止时移播放,返回直播

resumeLive({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

livePlayer.resumeLive({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

##事件回调

您可以为 RY-TencentLivePlayer 对象绑定一个 setPlayerEventListener,之后 SDK 的内部状态信息均会通过事件通知和状态反馈通知给您。

###播放事件

#onConnectSuccessEvt

已经连接服务器

{
    eventType: 'onConnectSuccessEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onRtmpStreamBeginEvt

已经连接服务器,开始拉流(仅播放 RTMP 地址时会抛送)

{
    eventType: 'onRtmpStreamBeginEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onRcvFirstIFrameEvt

网络接收到首个可渲染的视频数据包(IDR)

{
    eventType: 'onRcvFirstIFrameEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onPlayBeginEvt

视频播放开始,如果有转菊花什么的这个时候该停了

{
    eventType: 'onPlayBeginEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onPlayLoadingEvt

视频播放 loading,如果能够恢复,之后会有 BEGIN 事件

{
    eventType: 'onPlayLoadingEvt'
}

不要在收到 onPlayLoadingEvt 后隐藏播放画面 因为 onPlayLoadingEvt -> onPlayBeginEvt 的时间长短是不确定的,可能是 5s 也可能是 5ms,有些客户考虑在 LOADING 时隐藏画面, BEGIN 时显示画面,会造成严重的画面闪烁(尤其是直播场景下)。推荐的做法是在视频播放画面上叠加一个半透明的 loading 动画

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onGetMessageEvt

用于接收夹在音视频流中的消息

{
    eventType: 'onGetMessageEvt',
    msg: 'This is a message'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

msg:

  • 类型: 字符类型
  • 描述: 消息内容

###结束事件

#onPlayEndEvt

视频播放结束

{
    eventType: 'onPlayEndEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onNetDisconnectErr

网络断连,且经多次重连亦不能恢复,更多重试请自行重启播放

{
    eventType: 'onNetDisconnectErr'
}

如何判断直播已结束?

基于各种标准的实现原理不同,很多直播流通常没有结束事件(onPlayEndEvt)抛出,此时可预期的表现是:主播结束推流后,SDK 会很快发现数据流拉取失败(onReconnectWarn),然后开始重试,直至三次重试失败后抛出 onNetDisconnectErr 事件。 所以 onPlayEndEvt 和 onNetDisconnectErr 都要监听,用来作为直播结束的判定事件。

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###警告事件

如下的这些事件您可以不用关心,我们只是基于白盒化的 SDK 设计理念,将事件信息同步出来

#onVideoDecodeFailWarn

当前视频帧解码失败

{
    eventType: 'onVideoDecodeFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onAudioDecodeFailWarn

当前音频帧解码失败

{
    eventType: 'onAudioDecodeFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onReconnectWarn

网络断连, 已启动自动重连(重连超过三次就直接抛送 onNetDisconnectErr 了)

{
    eventType: 'onReconnectWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onRecvDataLagWarn

网络来包不稳:可能是下行带宽不足,或由于主播端出流不均匀

{
    eventType: 'onRecvDataLagWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onVideoPlayLagWarn

当前视频播放出现卡顿

{
    eventType: 'onVideoPlayLagWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onHWAccelerationFailWarn

硬解启动失败,采用软解

{
    eventType: 'onHWAccelerationFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onVideoDisconntinuityWarn

当前视频帧不连续,可能丢帧

{
    eventType: 'onVideoDisconntinuityWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onDnsFailWarn

RTMP-DNS 解析失败(仅播放 RTMP 地址时会抛送)

{
    eventType: 'onDnsFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onServerConnFailWarn

RTMP 服务器连接失败(仅播放 RTMP 地址时会抛送)

{
    eventType: 'onServerConnFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onShakeFailWarn

RTMP 服务器握手失败(仅播放 RTMP 地址时会抛送)

{
    eventType: 'onShakeFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

##接口列表

###初始化与监听

接口列表 功能
init 播放器初始化
setPlayerListener 设置播放监听器
removePlayerListener 移除播放监听
destroy 销毁播放器

###基本控制

接口列表 功能
start 开始播放
pause 暂停播放
resume 继续播放
stop 停止播放

###高级控制

接口列表 功能
setStartTime 设置开始播放时间
isPlaying 是否正在播放
seek 跳转到1分钟的地方
getCurrentPlaybackTime 获取当前播放时间
getDuration 获取视频总时长
getPlayableDuration 获取可播放时长
getWidth 获取视频宽度
getHeight 获取视频高度
setRenderMode 切换画面的裁剪模式
setRenderRotation 切换画面方向
setMute 切换静音
snapshot 屏幕截图
setRate 切换播放速率
getSupportedBitrates 支持的码率的列表
getBitrateIndex 获取当前正在播放的码率索引
setBitrateIndex 设置当前正在播放的码率索引
setMirror 切换镜像
enableHWAcceleration 开启关闭硬件加速
isHWAcceleration 是否开启硬件加速
setAutoPlay 切换自动播放
isAutoPlay 是否自动播放
setLoop 切换循环播放
isLoop 是否循环播放
setToken 设置加密HLS的token
getToken 获取加密HLS的token

##插件接口

#init

初始化播放器

init({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.init({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setPlayerListener

设置播放器监听

setPlayerListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onPlayBegin'
}
  • 字段详情:

eventType:

  • 类型: 字符串类型
  • 描述: 事件回调名称,详见事件回调

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setPlayerListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#removePlayerListener

移除播放器监听

removePlayerListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.removePlayerListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroy

销毁播放器

destroy({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.destroy({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#start

显示播放器界面

start({params}, function(ret, err))

params

url:

  • 类型: 字符串类型
  • 描述: (必填项) 启动从指定url播放

rect:

  • 类型: JSON对象
  • 描述: (必填项) 视频播放器的位置和大小

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.start({
    rect: {
        x: 0,
        y: 0,
        w: api.winWidth,
        h: api.winWidth * 9 / 16
    },
    url: 'http://1251049911.vod2.myqclS29wR5K0A.mp4'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#pause

暂停播放

pause({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.pause({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#resume

重置播放器窗口大小

resume({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.resume({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stop

停止播放

stopPlayer({}, function(ret, err))

callback(ret, err)

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.stop({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setStartTime

设置播放开始时间 在start前设置,修改开始播放的起始位置

setStartTime({params}, function(ret, err))

params

pos:

  • 类型: 浮点数类型
  • 描述: (必填项) 起始播放位置

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setStartTime({
    pos: 300
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#isPlaying

是否正在播放

isPlaying({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    isPlaying: true
}
  • 字段详情:

isPlaying:

  • 类型: 布尔类型
  • 描述: true表示播放中,false表示没有在播放

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.isPlaying({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#seek

移除事件监听

seek({params}, function(ret, err))

params

time:

  • 类型: 浮点数类型
  • 描述: 流时间,单位为秒

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.seek({
    value: 600
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#getCurrentPlaybackTime

获取当前播放时间

getCurrentPlaybackTime({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    time: 110
}
  • 字段详情:

time:

  • 类型: 浮点数类型
  • 描述: 当前的播放时间

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getCurrentPlaybackTime({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getDuration

获取视频总时长

getDuration({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    time: 110
}
  • 字段详情:

time:

  • 类型: 浮点数类型
  • 描述: 总时长

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getDuration({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getPlayableDuration

可播放时长

getPlayableDuration({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    time: 110
}
  • 字段详情:

time:

  • 类型: 浮点数类型
  • 描述: 可播放时长

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getPlayableDuration({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#getWidth

获取视频宽度

getWidth({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    width: 98
}
  • 字段详情:

width:

  • 类型: 整数类型
  • 描述: 视频宽度

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getWidth({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#getHeight

获取视频高度

getHeight({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    height: 100
}
  • 字段详情:

height:

  • 类型: 整数类型
  • 描述: 视频高度

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getHeight({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setRenderMode

设置画面的裁剪模式

setRenderMode({params}, function(ret, err))

params

mode:

  • 类型: 整数类型
  • 描述: (必填项) 裁剪
  • 取值范围:
    • 0: 图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉。
    • 1: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在。

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setRenderMode({
    mode: renderMode
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setRenderRotation

设置画面的方向

setRenderRotation({params}, function(ret, err))

params

rotation:

  • 类型: 整数类型
  • 描述: (必填项)方向
  • 取值范围:
    • 0: HOME 键在右边,横屏模式
    • 1: HOME 键在下面,手机直播中最常见的竖屏直播模式
    • 2: HOME 键在左边,横屏模式
    • 3: HOME 键在上边,竖屏直播(适合小米 MIX2)

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setRenderRotation({
    rotation: rotation
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setMute

设置静音

setMute({params}, function(ret, err))

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项)是否静音

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setMute({
    isMute: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#snapshot

截图

snapshot({params}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.snapshot({
    path: '/tencentVodPlayer/abc.png';
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setRate

设置播放速率

setRate({params}, function(ret, err))

params

rate:

  • 类型: 浮点数类型
  • 描述: (必填项) 正常速度为1.0;小于为慢速;大于为快速。最大建议不超过2.0

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setRate({
    rate: 0.5
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#getSupportedBitrates

当播放地址为master playlist,返回支持的码率(清晰度)

getSupportedBitrates({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    bitrateList: [
        {
            index: 0, 
            width: 110,
            height: 220, 
            bitrate: xxx
        }
        ...
    ]
}

字段详情:

bitrateList

  • 类型: JSON数组
  • 描述: 码率对象列表

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getSupportedBitrates({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#getBitrateIndex

getBitrateIndex({}, function(ret, err))

获取当前正在播放的码率索引

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
    index: 0
}
  • 字段详情:

index:

  • 类型: 整数类型
  • 描述: 码率索引

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getBitrateIndex({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setBitrateIndex

设置当前正在播放的码率索引,无缝切换清晰度 清晰度切换可能需要等待一小段时间。腾讯云支持多码率HLS分片对齐,保证最佳体验。

setBitrateIndex({params}, function(ret, err))

params

index:

  • 类型: 整数类型
  • 描述: (必填项) 码率索引

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setBitrateIndex({
    index: 0
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setMirror

设置画面镜像

setMirror({params}, function(ret, err))

params

isMirror:

  • 类型: 布尔类型
  • 描述: (必填项) 是否镜像

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setMirror({
    isMirror: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#setHwAcc

是否开启硬件加速 播放前设置有效

setHwAcc({params}, function(ret, err))

params

enable:

  • 类型: 布尔类型
  • 描述: (必填项) 是否硬件加速

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setHwAcc({
    enable: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#isHwAcc

是否开启硬件加速

isHwAcc({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    isHwAcc: true
}
  • 字段详情:

isHwAcc:

  • 类型: 布尔类型
  • 描述: 是否开启硬件加速

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.isHwAcc({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

#setAutoPlay

设置自动播放

setAutoPlay({params}, function(ret, err))

params

isAutoPlay:

  • 类型: 布尔类型
  • 描述: (必填项) 是否自动播放

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setAutoPlay({
    isAutoPlay: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#isAutoPlay

是否自动播放

isAutoPlay({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    isAutoPlay: true
}
  • 字段详情:

isAutoPlay:

  • 类型: 布尔类型
  • 描述: 是否自动播放

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -1, 	    // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.isAutoPlay({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

#setToken

设置加密HLS的token

setToken({param}, function(ret, err))

params

token:

  • 类型: 字符串类型
  • 描述: (必填项) 加密HLS的token

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -1, 	    // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setToken({
    token: 'fdsaf2xfdasxx'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#getToken

获取加密HLS的token

getToken({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    token: 'defxa3xxxuiol'
}

字段详情:

token:

  • 类型: 字符串类型
  • 描述: 加密HLS的token

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -1, 	    // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.getToken({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

#setLoop

设置是否循环播放

setLoop({param}, function(ret, err))

params

isLoop:

  • 类型: 布尔类型
  • 描述: (必填项) 是否循环播放

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.setLoop({
    isLoop: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS, Android系统

可提供的1.0.0及更高版本

#isLoop

是否循环播放

isLoop({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    isLoop: true
}

字段详情:

isLoop:

  • 类型: 布尔类型
  • 描述: 是否循环播放

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	  // 整数类型, 错误码
    msg: '错误描述'  // 字符串类型, 错误信息
}

示例代码

vodPlayer.isLoop({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

##事件回调

除了进度信息,SDK 还会通过事件通知和状态反馈同步给您的应用程序很多其它的信息:

###播放事件

#onPlayBeginEvt

视频播放开始,如果有转菊花什么的这个时候该停了

{
    eventType: 'onPlayBeginEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onPlayProgressEvt

视频播放进度,会通知当前播放进度、加载进度和总体时长

{
    eventType: 'onPlayProgressEvt',
    playable: 3000,
    progress: 100, 
    duration: 110000
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

playable:

  • 类型: 整数类型
  • 描述: 加载进度, 单位是毫秒

progress:

  • 类型: 整数类型
  • 描述: 播放进度, 单位是毫秒

duration:

  • 类型: 整数类型
  • 描述: 视频总长, 单位是毫秒

#onPlayLoadingEvt

视频播放 loading,如果能够恢复,之后会有 onVodPlayLoadingEvt 事件

{
    eventType: 'onPlayLoadingEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onVodLoadingEndEvt

视频播放 loading 结束,视频继续播放

{
    eventType: 'onVodLoadingEndEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###结束事件

#onPlayEndEvt

视频播放结束

{
    eventType: 'onPlayEndEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onNetDisconnectErr

网络断连,且经多次重连亦不能恢复,更多重试请自行重启播放

{
    eventType: 'onNetDisconnectErr'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onHlsKeyErr

HLS 解密 key 获取失败

{
    eventType: 'onHlsKeyErr'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###警告事件

如下的这些事件您可以不用关心,它只是用来告知您 SDK 内部的一些事件。

#onVideoDecodeFailWarn

当前视频帧解码失败

{
    eventType: 'onVideoDecodeFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onAudioDecodeFailWarn

当前音频帧解码失败

{
    eventType: 'onAudioDecodeFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onReconnectWarn

网络断连,已启动自动重连(重连超过三次就直接抛送 PLAY_ERR_NET_DISCONNECT 了)

{
    eventType: 'onReconnectWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onHWAccelerationFailWarn

硬解启动失败,采用软解

{
    eventType: 'onHWAccelerationFailWarn'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###连接事件

此外还有几个连接服务器的事件,主要用于测定和统计服务器连接时间,您也无需关心:

#onVodPlayPreparedEvt

播放器已准备完成,可以播放

{
    eventType: 'onVodPlayPreparedEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onRcvFirstIFrameEvt

网络接收到首个可渲染的视频数据包(IDR)

{
    eventType: 'onRcvFirstIFrameEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###分辨率事件

以下事件用于获取画面变化信息,您也无需关心:

#onChangeResolutionEvt

视频分辨率改变

{
    eventType: 'onChangeResolutionEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

#onChangeRotationEvt

MP4视频旋转角度

{
    eventType: 'onChangeRotationEvt'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

##技术支持

技术支持

技术支持微信号: ruanyunkeji006

是否仍需要帮助? 请保持联络!
最后更新于 2023/05/12