/* Title: alivcLivePlayer Description: alivcLivePlayer */
概述
该插件封装了阿里云播放器基础版,提供播放视频的基础能力,仅支持URL的方式播放,建议使用阿里云CDN+OSS存储或使用其他第三方服务的用户使用。
系统要求
注意
1.使用该插件时需要使用升级后的编译环境,请在应用打包的时候勾选“使用升级环境编译”,并且在控制台 “高级设置” 中将固件版本设置为 4.0.3或以上
2.当前SDK仅支持HLS、RTMP、HTTP FLV、mp4、mp3等流格式,支持的视频编码格式为H264,音频编码格式为AAC。建议使用MTS或点播平台转码后使用。
3.适配iPhone5S以上机型,低端机型在使用变速功能时可能存在性能问题。
HarmonyOS配置:
参考官网 HarmonyOS NEXT播放器SDK的 快速接入。
配置License:
管理License授权。
申请授权成功后,将获取到的License证书文件拷贝到DevEco Studio项目中,建议放到rawfile目录下。
在module.json5文件中添加如下字段。
 "metadata": [
      {
        "name": "com.aliyun.alivc_license.licensekey",
        "value": "*********"
      },
      {
        "name": "com.aliyun.alivc_license.licensefile",
        "value": "./resources/rawfile/****.crt"
      },
    ],
初始化播放器
initPlayer({params},callback(ret))
rect:
{
    x: 0,                              //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,                              //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w:300,                             //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认300
    h:600                              //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认300
}
fixedOn:
fixed:
ret:
{
    status : true //初始化是否成功,iOS上没有此回调
}		   
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.initPlayer(function(ret){
    api.alert({msg: JSON.stringify(ret)});
})
准备播放
prepareToPlay({params},callback(ret))
url:
ret:
{
    status : true // 预览界面是否打开成功
}
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.prepareToPlay(function(ret){
    api.alert({msg: JSON.stringify(ret)});
})
(安卓需要调用此方法才能正常播放,该接口仅支持安卓,1.0.4版本后不再支持该接口)
准备播放
prepareAndPlay({params},callback(ret))
url:
ret:
{
    status : true // 预览界面是否打开成功
}
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.prepareAndPlay();
播放
play()
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.play()
停止播放
stop()
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.stop();
暂停播放
pause()
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.pause();
跳转到指定时间点播放
seekTo({params})
position:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.seekTo({
    position:10000
});
销毁播放器
destroy()
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.destroy();
重置播放器
reset()
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.reset();
重设播放器的大小
resize({params})
rect:
{
    x: 0,                              //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,                              //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w:300,                             //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认300
    h:600                              //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认300
}
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.resize({
    rect:{
        x:0,
        y:0,
        w:300,
        h:300
    }
});
设置网络超时时间(仅支持ios)
setTimeOut({params})
time:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setTimeOut({
    time:10000
});
循环播放设置
setCirclePlay({params})
isCirclePlay:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setCirclePlay({
    isCirclePlay:true
});
获取当前播放位置
getCurrentPosition(callback(ret))
ret:
{
    position : 10000 // 当前播放位置
}		   
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.getCurrentPosition(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});
获取视频长度
getDuration(callback(ret))
ret:
{
    duration : 10000 //视频长度
}		   
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.getDuration(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});
倍数播放支持0.5~2倍的设置,支持音频变速不变调
setPlaySpeed({params})
speed:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setPlaySpeed({
    speed:1.0
});
截图
snapShot({params},callback(ret))
path:
ret:
{
    status : true //是否保存成功
}
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.snapShot({
    path:'fs://test/tt.jpg'
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
})
设置视频画面旋转角度,支持0°,90°,180°,270°设置,默认0°,角度按顺时针方向计算
setRenderRotate({params})
rotate:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setRenderRotate({
    rotate:90
});
setRenderMirrorMode({params})
支持设置画面镜像,包括水平镜像和垂直镜像。默认为无镜像
mode:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setRenderMirrorMode({
    mode:'vertical'
});
setVolume({params})
音量设置
volume:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setVolume({
    volume:50
});
setMuteMode({params})
静音设置
: isMute
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setMuteMode({
    isMute:true
});
setMuteMode({params})
设置屏幕亮度 (1.0.4 版本之后不再支持该接口)
brightness:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setScreenBrightness({
    brightness:30
});
setVideoScalingMode({params})
设置显示模式
scalingMode:
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setVideoScalingMode({
    scalingMode:'fit'
});
addEventListener()
添加播放器监听事件
ret:
{
    eventType : 'prepared'  // 准备完成
                     // 首帧显示  frameInfoListener
                     // 播放完成   complete
                     // seek完成  seekCompleted
                     // stop触发  stop
                     // 循环播放  circleStart  
                     // 开始缓冲  startCache (仅支持iOS)
                     // 结束缓冲  endCache   (仅支持iOS)
                     // 音频焦点失去 audioFocusLost (仅支持Android)
}        
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.addEventListener(function(ret){
       api.alert({msg: JSON.stringify(ret)});
});
setOnErrorListener()
异常监听 (错误码及错误信息请参考阿里云 官方文档)
ret:
{
   code: 0,
   msg: ''
}        
var alivcLivePlayer = api.require('alivcLivePlayer');
alivcLivePlayer.setOnErrorListener(function(ret){
       api.alert({msg: JSON.stringify(ret)});
});