TCLitePlayer

概述

简述

插件封装了腾讯的点播视频播放器。支持播放任意服务器端视频,以及本地视频。本插件还封装了离线下载及缓冲功能,可以让用户在有 Wi-Fi 环境时下载视频,一遍没有 Wi-Fi 时无流量播放。通过打开多个插件配合 setAutoPlay 接口可实现预加载功能。本插件亦支持视频加密播放。

特别说明

本腾讯视频播放器 SDK 不会对播放地址的来源做限制,即您可以用它来播放腾讯云或非腾讯云的播放地址。但播放器只支持 MP4、HLS(m3u8)和 FLV 三种格式的点播地址。

关于缓存

在短视频播放场景中,视频文件的本地缓存是很刚需的一个特性,对于普通用户而言,一个已经看过的视频再次观看时,不应该再消耗一次流量。

  • 格式支持

SDK 支持 HLS(m3u8)和 MP4 两种常见点播格式的缓存功能。

  • 何时开启?

SDK 并不默认开启缓存功能,对于用户回看率不高的场景,也并不推荐您开启此功能。

  • 如何开启?

开启此功能需要通过 setConfig 接口配置两个参数:本地缓存目录及需要缓存的视频个数。

预加载

在短视频播放场景中,预加载功能对于流畅的观看体验很有帮助:在观看当前视频的同时,在后台加载即将要播放的下一个视频 URL,这样一来,当用户真正切换到下一个视频时,已经不需要从头开始加载了,而是可以做到立刻播放。

这就是视频播放中无缝切换的背后技术支撑,您可以使用 setAutoPlay 开关来实现这个功能,具体做法如下:

1,打开插件 A,设置 setAutoPlay 为 true,startPlay接口后会立刻播放视频

2,打开插件 A 播放视频的同时打开插件 B,并设置 setAutoPlay 为 false。

3,等 A 视频播放结束,插件 B 调用 resume 接口即可实现立刻播放。

关于加密播放

视频加密方案主要用于在线教育等需要对视频版权进行保护的场景。如果要对您的视频资源进行加密保护,就不仅仅需要在播放器上做改造,还需要对视频源本身进行加密转码,亦需要您的后台和终端研发工程师都参与其中。在 视频 加密解决方案 中您会了解到全部细节内容。

目前 TCLitePlayer 也是支持加密播放的,您可以使用通过 URL 携带身份认证信息的方案,该种方案下插件的调用方式跟普通情况没有什么区别。 您也可以使用 Cookie 携带身份认证信息的方案,该种方案下,需要您通过 setConfig 中的 headers 字段设置 cookie 信息于 HTTP 请求头中。

关于AVM方式

本插件支持 AVM 方式打开。通过 AVM 标签方式打开的插件,在 js 代码中需要通过 document.getElementById 的形式获取该插件实例对象然后进行其它逻辑的操作。否则会产生莫名其妙的问题。

该插件同时也支持 api.require 方式调用,通过 configView 接口相当于 AVM 的标签打开了一个视频播放区域的 frame(view)插件,用户点击全屏按钮后,插件自动代码一个 window 来全屏播放视频。

关于后台播放功能

如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置

配置实例如下:

<preference name="backgroundMode" value="audio"/>

注意:iOS端1.0.2版(原生SDK 10.1版本)本开始增加授权校验,详情参考腾讯文档

插件接口

setLicence

设置验证

setLicence({params})

params

licenceURL:

  • 类型:字符串
  • 描述:腾讯直播平台申请的 url

licenceKey:

  • 类型:字符串
  • 描述:腾讯直播平台申请的 key

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setLicence({
  licenceURL:'',
  licenceKey:''
})

可用性

iOS 系统

可提供的 1.0.3 及更高版本

configPlayerView

配置播放器视图。

注意:本接口仅支持引擎2.0方式调用。引擎3.0上可直接通过 mo-tcliteplayer 标签配置使用播放器。

configPlayerView({params})

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)视频播放器的位置及大小
  • 内部字段:
{
    x: 0,        //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,        //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w:300,       //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认:100%
    h:600        //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认:100%
}

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)插件添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:预览窗口依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)预览窗口是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.configPlayerView({
  rect:{
    x:,
    y:,
    w:,
    h:
  },
  fixedOn:'',
  fixed:false
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

resizePlayerView

重设播放器位置和大小

注意:本接口仅对 configPlayerView 打开的播放器有效

resizePlayerView({params})

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)预览窗口的位置及大小
  • 内部字段:
{
    x: 0,        //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:原x坐标
    y: 0,        //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:原y坐标
    w:300,       //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认:原宽度
    h:600        //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认:原高度
}

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.resizePlayerView({
  rect:{
    x:,
    y:,
    w:,
    h:
  }
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

hidePlayerView

隐藏播放试图的 frame

hidePlayerView()

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.hidePlayerView()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

showPlayerView

恢复显示播放试图的 frame

showPlayerView()

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.showPlayerView()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

initPlayer

初始化播放器

initPlayer()

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.initPlayer()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

closePlayer

关闭播放器

closePlayer()

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

enableHWAcceleration

开启硬件加速,播放前设置有效。

enableHWAcceleration({params})

params

HWAcceleration:

  • 类型:布尔
  • 描述:(可选项)是否开启硬件加速
  • 默认:true

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.enableHWAcceleration({
    HWAcceleration: true
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setPlayConfig

点播配置

setPlayConfig({params})

params

connectRetryCount:

  • 类型:数字
  • 描述:(可选项)播放器连接重试次数:最小值为1,最大值为10
  • 默认:3

connectRetryInterval:

  • 类型:数字
  • 描述:(可选项)播放器连接重试间隔:单位秒,最小值为3, 最大值为30
  • 默认:3

timeout:

  • 类型:数字
  • 描述:(可选项)超时时间:单位秒
  • 默认:10

keepLastFrameWhenStop:

  • 类型:布尔
  • 描述:(可选项)stopPlay 的时候是否保留最后一帧画面,
  • 默认:false

cacheFolderPath:

  • 类型:字符串
  • 描述:缓存目录,缓存目录应该是单独的目录,SDK可能会清掉其中的文件

maxCacheItems:

  • 类型:数字
  • 描述:(可选项)最多缓存文件个数
  • 默认:3

headers:

  • 类型:JSON对象
  • 描述:(可选项)自定义 HTTP Headers

enableAccurateSeek:

  • 类型:布尔
  • 描述:(可选项)是否精确seek,开启精确后seek,seek 的时间平均多出200ms
  • 默认:true

autoRotate:

  • 类型:布尔
  • 描述:(可选项)播放 MP4 文件时,若设为true则根据文件中的旋转角度自动旋转。
  • 默认:true

progressInterval:

  • 类型:数字
  • 描述:(可选项)设置进度回调间隔时间,若不设置,SDK默认间隔0.5秒回调一次。
  • 默认:1

maxBufferSize:

  • 类型:数字
  • 描述:(可选项)最大预加载大小,单位 MB。
  • 默认:500

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setPlayConfig({
    maxBufferSize: 1000,
    progressInterval:1,
    autoRotate:true,
    cacheFolderPath:'fs://TCLitePlayer/videoCache'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setAutoPlay

startPlay后是否立即播放

setAutoPlay({params})

params

autoPlay:

  • 类型:布尔
  • 描述:(可选项)startPlay后是否立即播放
  • 默认:true

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setAutoPlay({
    autoPlay: true
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setToken

加密HLS的token。设置此值后,播放器自动在URL中的文件名之前增加 voddrm.token.TOKEN

setToken({params})

params

token:

  • 类型:字符串
  • 描述:加密HLS的token。设置此值后,播放器自动在URL中的文件名之前增加 voddrm.token.TOKEN

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setToken({
    token: true
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setStartTime

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

setStartTime({params})

params

startTime:

  • 类型:数字
  • 描述:在startPlay前设置,修改开始播放的起始位置,单位秒

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setStartTime({
    startTime: 10
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

playWithUrl

播放自定义视频

playWithUrl({params})

params

videoURL:

  • 类型:字符串
  • 描述:视频的URL

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.playWithUrl({ 
    videoURL:'http://af1fb2ef33ba36ebbfad.qiniucdn.apicloud-system.com/apicloud/1b99aa5822f858abd1da8b2bb8332055.MP4'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

playWithTCloud

播放腾讯云视频

playWithTCloud({params})

params

appId:

  • 类型:字符串
  • 描述:AppId 用于腾讯云点播 File ID 播放及腾讯云直播时移功能

fileId:

  • 类型:字符串
  • 描述:云点播 File ID

psign:

  • 类型:字符串
  • 描述:(可选项)防盗链签名,若不传表示播放非防盗链视频资源

timeout:

  • 类型:字符串
  • 描述:(可选项)加密链接超时时间戳,转换为16进制小写字符串,腾讯云 CDN 服务器会根据该时间判断该链接是否有效。

us:

  • 类型:字符串
  • 描述: 唯一标识请求,增加链接唯一性

exper:

  • 类型:字符串
  • 描述:(可选项)试看时长,单位:秒

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.playWithTCloud({
    us: 'weiorupqklfjasdiofdfas',
    appId:1400329073,
    fileId:'5285890799710670616'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopPlay

停止播放

stopPlay()

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.stopPlay()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

pause

暂停播放

pause()

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

resume

恢复播放

resume()

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

isPlaying

isPlaying()

是否正在播放

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{ 
   isPlaying:,              //布尔类型;是否正在播放
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.isPlaying(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

currentPlaybackTime

获取当前播放位置

currentPlaybackTime()

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{ 
   currentPlaybackTime:               //数字类型;当前播放位置
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.currentPlaybackTime(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

duration

获取视频总时长

duration()

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{ 
   duration:               //数字类型;总时长
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.duration(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

playableDuration

获取视频可播放时长

playableDuration()

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{ 
   playableDuration:               //数字类型;可播放时长
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.playableDuration(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

getWidthHeight

获取视频宽高

getWidthHeight()

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{ 
   width:               //数字类型;视频宽
   height:              //数字类型;视频高
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.getWidthHeight(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setRenderRotation

设置视频旋转角度

setRenderRotation({params})

params

orientation:

  • 类型:字符串
  • 描述:(可选项)视频旋转方向
  • 取值范围:
    • right:
    • left:
    • down:
    • up:

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setRenderRotation({
    orientation: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setRenderMode

设置视频显示模式

setRenderMode({params})

params

mode:

  • 类型:字符串
  • 描述:(可选项)视频旋转方向
  • 取值范围:
    • screen:图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉。
    • edge: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在。

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setRenderMode({
    mode: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setMute

设置静音

setMute({params})

params

enable:

  • 类型:布尔
  • 描述:(可选项)是否静音
  • 默认:false

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setMute({
    enable: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setVolume

设置音量

setVolume({params})

params

volume:

  • 类型:数字
  • 描述:(可选项)音量大小,范围:0 ~ 100。

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setVolume({
    volume: 50
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

snapshot

获取截图

snapshot(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   status:,          //布尔类型;是否获取成功
   path:             //字符串类型;截图路径
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.snapshot(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setRate

设置播放速率

setRate({params})

params

rate:

  • 类型:数字
  • 描述:(可选项)正常速度为1.0;小于为慢速;大于为快速。最大建议不超过2.0
  • 默认:1

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setRate({
    rate: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setMirror

设置镜像

setMirror({params})

params

mirror:

  • 类型:布尔
  • 描述:(可选项)是否打开镜像
  • 默认:false

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setMirror({
    mirror: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setLoop

设置循环播放

setLoop({params})

params

loop:

  • 类型:布尔
  • 描述:(可选项)是否循环播放
  • 默认:false

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setLoop({
    loop: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addEventListener

addEventListener(callback(ret))

添加播放器事件监听

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   evtID: '',           //字符串类型;回调事件类型,详情参见本页附录 TCLiteAVEvent
   evtMsg:,             //字符串类型;事件描述
   evtTime:'',          //字符串类型;事件发生的UTC毫秒时间戳
   evtBlockTime:,       //字符串类型;卡顿时间(毫秒)
   evtParam1:'',        //字符串类型;事件参数1
   evtParam2:'',        //字符串类型;事件参数2
   evtPlayProgress:,    //字符串类型;视频播放进度
   evtPlayDuration:'',  //字符串类型;视频总时长
   evtPlayableDuration:,//字符串类型;视频可播放时长
   evtPlayCoverUrl:'',  //字符串类型;视频封面
   evtPlayUrl:'',       //字符串类型;视频播放地址
   evtPlayName:'',      //字符串类型;视频名称
   evtPlayDescription:'',//字符串类型;视频简介
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.addEventListener(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addNetStatusListener

添加网络事件监听

addNetStatusListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   cpuUsage: '',        //字符串类型; 进程 CPU 占用率
   cpuUsageD:,          //字符串类型;系统 CPU 占用率
   videoWidth:'',       //字符串类型;视频分辨率宽度
   videoHeight:,        //字符串类型;视频分辨率高度
   videoFPS:'',         //字符串类型;视频帧率:也就是视频编码器每秒生产了多少帧画面。
   videoGop:'',         //字符串类型;关键帧间隔:即每两个关键帧(I帧)间隔时长,单位:秒
   videoBitrate:,       //字符串类型;视频码率:即视频编码器每秒生产了多少视频数据,单位:kbps。
   audioBitrate:'',     //字符串类型;音频码率:即音频编码器每秒生产了多少音频数据,单位:kbps。
   netSpeed:,           //字符串类型;传输速度:即每秒钟发送或接收了多少字节的数据。
   videoCache:'',       //字符串类型;播放端缓冲的视频总时长。
   audioCache:'',       //字符串类型;播放端缓冲的音频总时长。
   audioInfo:'',        //字符串类型;音频信息:包括采样率信息和声道数信息
   netJitter:'',        //字符串类型;网络抖动:数值越大表示抖动越大,网络越不稳定
   netQuality:'',        //字符串类型;网络质量:0:未定义 1:最好 2:好 3:一般 4:差 5:很差 6:不可用
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.addNetStatusListener(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addDownloadListener

添加下载监听

addDownloadListener(callback(ret))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   eventType: '',       //字符串类型; 下载事件类型
                        //取值范围:
                        //start:开始下载
                        //progress:正在下载
                        //stop:停止下载
                        //finish:完成下载
                        //error:发生错误
   progress:            //数字类型;下载进度,仅 eventType 为progress时有值
}        

err:

  • 类型:JSON对象
  • 描述:返回值
{
   code: '',       //数字类型; 错误码
   msg:            //数字类型;错误信息
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.addDownloadListener(function(ret,err){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setDownloadPath

设置下载目录

setDownloadPath({params})

params

downloadPath:

  • 类型:字符串
  • 描述:下载视频所在的文件夹路径

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setDownloadPath({
    downloadPath:'fs://litePlayer'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startDownload

下载腾讯云端的视频,同时只能下载一个视频,不支持同时下载多个视频。

startDownload({params},callback(ret))

注意:Android平台下暂不支持下载 MP4 和 FLV 格式的文件,仅支持将 HLS 下载到本地。

params

appId:

  • 类型:数字
  • 描述:AppId 用于腾讯云点播 File ID 播放及腾讯云直播时移功能

fileId:

  • 类型:字符串
  • 描述:云点播 File ID

psign:

  • 类型:字符串
  • 描述:(可选项)防盗链签名,若不传表示播放非防盗链视频资源

timeout:

  • 类型:字符串
  • 描述:(可选项)加密链接超时时间戳,转换为16进制小写字符串,腾讯云 CDN 服务器会根据该时间判断该链接是否有效。

us:

  • 类型:字符串
  • 描述: 唯一标识请求,增加链接唯一性

exper:

  • 类型:字符串
  • 描述:(可选项)试看时长,单位:秒

token:

  • 类型:字符串
  • 描述:(可选项)如地址有加密,请填写token

quality:

  • 类型:字符串
  • 描述:(可选项) 下载清晰度,
  • 默认:od
  • 取值范围:
    • od:原画
    • flu:流畅
    • sd:标清
    • hd:高清
    • fhd:全高清
    • 2k:
    • 4k:

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   mediaInfo: {          //JSON对象;
     url:'',             //字符串类型;下载地址
     duration:'',        //数字类型;时长
     size:'',            //数字类型;文件总大小,单位:byte
     downloadSize:'',    //数字类型;已下载大小,单位:byte
     segments:'',        //数字类型;分段总数
     downloadSegments:'',//数字类型;已下载的分段数
     progress:'',        //数字类型;进度
     playPath:'',        //字符串类型;本地路径
     speed:              //数字类型;下载速度,byte每秒
   }
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.startDownload({
    appId:,
    fileId:,
    psign:
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startDownloadUrl

下载视频,同时只能下载一个视频,不支持同时下载多个视频。

startDownloadUrl({params},callback(ret))

params

url:

  • 类型:字符串
  • 描述:视频地址

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   mediaInfo: {          //JSON对象;
     url:'',             //字符串类型;下载地址
     duration:'',        //数字类型;时长
     size:'',            //数字类型;文件总大小,单位:byte
     downloadSize:'',    //数字类型;已下载大小,单位:byte
     segments:'',        //数字类型;分段总数 仅ios支持
     downloadSegments:'',//数字类型;已下载的分段数 仅ios支持
     progress:'',        //数字类型;进度
     playPath:'',        //字符串类型;本地路径
     speed:              //数字类型;下载速度,byte每秒 仅ios支持
   }
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.startDownloadUrl({
    url:''
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopDownload

停止下载视频

stopDownload({params},callback(ret))

params

us:

  • 类型:字符串
  • 描述:唯一标识请求,用于停止 startDownload 接口开始的下载

url:

  • 类型:字符串
  • 描述:视频地址,用于停止 startDownloadUrl 接口开始的下载

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   success:      //布尔类型;是否停止下载成功
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.stopDownload({
    us:'wieuyqoeutdah123'
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

deleteDownloadFile

删除下载视频

deleteDownloadFile({params},callback(ret))

params

playPath:

  • 类型:字符串
  • 描述:下载到本地的本地路径

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   success:      //布尔类型;是否删除成功
}        

示例代码

var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.deleteDownloadFile({
    playPath:'pqietyp'
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

TCLiteAVEvent

EVT_RTMP_PUSH_CONNECT_SUCC = 1001, ///< 直播,已经连接 RTMP 推流服务器 EVT_RTMP_PUSH_BEGIN = 1002, ///< 直播,已经与 RTMP 服务器握手完毕,开始推流 EVT_CAMERA_START_SUCC = 1003, ///< 打开摄像头成功 EVT_SCREEN_CAPTURE_SUCC = 1004, ///< 录屏启动成功 EVT_UP_CHANGE_RESOLUTION = 1005, ///< 上行动态调整分辨率 EVT_UP_CHANGE_BITRATE = 1006, ///< 码率动态调整 EVT_FIRST_FRAME_AVAILABLE = 1007, ///< 首帧画面采集完成 EVT_START_VIDEO_ENCODER = 1008, ///< 编码器启动成功 EVT_SNAPSHOT_COMPLETE = 1022, ///< 一帧截图完成 EVT_CAMERA_REMOVED = 1023, ///< 摄像头设备已被移出(Windows 和 Mac 版 SDK 使用) EVT_CAMERA_AVAILABLE = 1024, ///< 摄像头设备重新可用(Windows 和 Mac 版 SDK 使用) EVT_CAMERA_CLOSE = 1025, ///< 关闭摄像头完成(Windows 和 Mac 版 SDK 使用) EVT_RTMP_PUSH_PUBLISH_START = 1026, ///< 直播,与 RTMP 服务器连接后,收到 NetStream.Publish.Start 消息,表明流发布成功(SDK 内部事件,不会对外抛出) EVT_HW_ENCODER_START_SUCC = 1027, ///< 硬编码器启动成功 EVT_SW_ENCODER_START_SUCC = 1028, ///< 软编码器启动成功 EVT_LOCAL_RECORD_RESULT = 1029, ///< 本地录制结果 EVT_LOCAL_RECORD_PROGRESS = 1030, ///< 本地录制状态通知

EVT_PLAY_LIVE_STREAM_CONNECT_SUCC               = 2001,     ///<  直播,已经连接 RTMP 拉流服务器
EVT_PLAY_LIVE_STREAM_BEGIN                      = 2002,     ///<  直播,已经与 RTMP 服务器握手完毕,开始拉流
EVT_RENDER_FIRST_I_FRAME                        = 2003,     ///<  渲染首个视频数据包(IDR)
EVT_VIDEO_PLAY_BEGIN                            = 2004,     ///<  视频播放开始
EVT_VIDEO_PLAY_PROGRESS                         = 2005,     ///<  视频播放进度
EVT_VIDEO_PLAY_END                              = 2006,     ///<  视频播放结束
EVT_VIDEO_PLAY_LOADING                          = 2007,     ///<  视频播放 loading
EVT_START_VIDEO_DECODER                         = 2008,     ///<  解码器启动
EVT_DOWN_CHANGE_RESOLUTION                      = 2009,     ///<  下行视频分辨率改变
EVT_GET_VODFILE_MEDIAINFO_SUCC                  = 2010,     ///<  点播,获取点播文件信息成功
EVT_VIDEO_CHANGE_ROTATION                       = 2011,     ///<  视频旋转角度发生改变
EVT_PLAY_GET_MESSAGE                            = 2012,     ///<  消息事件
EVT_VOD_PLAY_PREPARED                           = 2013,     ///<  点播,视频加载完毕
EVT_VOD_PLAY_LOADING_END                        = 2014,     ///<  点播,loading 结束
EVT_PLAY_LIVE_STREAM_SWITCH_SUCC                = 2015,     ///<  直播,切流成功(切流可以播放不同画面大小的视频)
EVT_VOD_PLAY_TCP_CONNECT_SUCC                   = 2016,     ///<  点播,TCP 连接成功(SDK 内部事件,不会对外抛出)
EVT_VOD_PLAY_FIRST_VIDEO_PACKET                 = 2017,     ///<  点播,收到首帧数据(SDK 内部事件,不会对外抛出)
EVT_VOD_PLAY_DNS_RESOLVED                       = 2018,     ///<  点播,DNS 解析完成(SDK 内部事件,不会对外抛出)
EVT_VOD_PLAY_SEEK_COMPLETE                      = 2019,     ///<  点播,视频播放 Seek 完成(SDK 内部事件,不会对外抛出)
EVT_VIDEO_DECODER_CACHE_TOO_MANY_FRAMES         = 2020,     ///<  视频解码器缓存帧数过多,超过40帧(SDK 内部事件,不会对外抛出)
EVT_HW_DECODER_START_SUCC                       = 2021,     ///<  硬解码器启动成功(SDK 内部事件,不会对外抛出)
EVT_SW_DECODER_START_SUCC                       = 2022,     ///<  软解码器启动成功(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_FIRST_LOADING            = 2023,     ///<  音频首次加载(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_LOADING                  = 2024,     ///<  音频正在加载(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_PLAYING                  = 2025,     ///<  音频正在播放(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_FIRST_PLAY               = 2026,     ///<  音频首次播放(SDK 内部事件,不会对外抛出)
EVT_MIC_START_SUCC                              = 2027,     ///<  麦克风启动成功
EVT_PLAY_GET_METADATA                           = 2028,     ///<  视频流MetaData事件
EVT_MIC_RELEASE_SUCC                            = 2029,     ///<  释放麦克风占用
EVT_AUDIO_DEVICE_ROUTE_CHANGED                  = 2030,     ///<  音频设备的route发生改变,即当前的输入输出设备发生改变,比如耳机被拔出
EVT_PLAY_GET_FLVSESSIONKEY                      = 2031,     ///<  TXLivePlayer 接收到http响应头中的 flvSessionKey 信息

EVT_ROOM_ENTER                                  = 1018,     ///<  进入房间成功
EVT_ROOM_EXIT                                   = 1019,     ///<  退出房间
EVT_ROOM_USERLIST                               = 1020,     ///<  下发房间成员列表(不包括自己)
EVT_ROOM_NEED_REENTER                           = 1021,     ///<  WiFi 切换到4G 会触发断线重连,此时需要重新进入房间(拉取最优的服务器地址)
EVT_ROOM_ENTER_FAILED                           = 1022,     ///<  自己进入房间失败
EVT_ROOM_USER_ENTER                             = 1031,     ///<  进房通知
EVT_ROOM_USER_EXIT                              = 1032,     ///<  退房通知
EVT_ROOM_USER_VIDEO_STATE                       = 1033,     ///<  视频状态位变化通知
EVT_ROOM_USER_AUDIO_STATE                       = 1034,     ///<  音频状态位变化通知

EVT_ROOM_REQUEST_IP_SUCC                        = 8001,     ///<  拉取接口机服务器地址成功
EVT_ROOM_CONNECT_SUCC                           = 8002,     ///<  连接接口机服务器成功
EVT_ROOM_REQUEST_AVSEAT_SUCC                    = 8003,     ///<  请求视频位成功
是否仍需要帮助? 请保持联络!
最后更新于 2024/10/10