普元CC js

2020-01-14  本文已影响0人  红凉梦

提交整合

2020.3.9修改超级播放器showSuperView方法,代码已跟新--oc--js,未提交git


2020.3.3 修改 微博分享 oc--js--未提交git-oc,js端代码已更新到简书


2020.2.26 提交代码,编写文档如下微博、MTA、CC


2019 CCdemo (xcode-native.js--SDK以及状态设置---SkyCCVideoView工具类---文件夹CCdemo---appdelegate修改---pch头文件--未提交git)


//CC 视频接口-直播
var __ccvideo = null;

util.CCVideo =
    function(json,LoginSuccess,LoginFailure){
    if(__ccvideo == null)
        __ccvideo = new Emp.CCtools();
        __ccvideo.showVideo(json,LoginSuccess,LoginFailure);
}
//cc 视频接口-回放
var __ccPlayBack = null;
util.CCVideoPlayBack = function(json,LoginSuccess,LoginFailure){
        if(__ccPlayBack == null)
            __ccPlayBack = new Emp.CCtools();
        __ccPlayBack.showVideoBack(json,LoginSuccess,LoginFailure);
}
//cc 视频接口-离线
//解压
var __ccDecompressZipWithDec = null;

util.decompressZipWithDec=function(json,callbackPath){
    if(__ccDecompressZipWithDec == null)
        __ccDecompressZipWithDec = new Emp.CCtools();
    __ccDecompressZipWithDec.decompressZip(json,callbackPath);
}
//解压成功之后
var __ccshowOfflineController = null;

util.showOfflineController =function(json){
    if(__ccshowOfflineController == null)
          __ccshowOfflineController = new Emp.CCtools();
      __ccshowOfflineController.showofflineController(json);
}
Emp.CCtools =Emp.extend(Emp.Component,{
                        init: function(json) {
                        Emp.CCtools.superclass.init.call(this, json);
                        this.content.xtype = 'SkyCCVideoView';
                        Emp.newNativeObject(this);
                        },
    showVideo:function(json,LoginSuccess,LoginFailure){
                        this.addEvent('CConSuccess',LoginSuccess);
                        this.addEvent('CConFailure',LoginFailure);
                        empBridge.fireModelMethod(this.modelId,"showCCVideo",json);
        
                         },
    showVideoBack:function(json,LoginSuccess,LoginFailure){
                       this.addEvent('CConSuccess',LoginSuccess);
                       this.addEvent('CConFailure',LoginFailure); empBridge.fireModelMethod(this.modelId,'showCCVideoBack',json);
                             
                        },
    decompressZip:function(json,callbackPath){
                        this.addEvent('decompressZipResult', callbackPath);
                        empBridge.fireModelMethod(this.modelId, 'decompressZipWithDec',json);
                        },
    showofflineController:function(json){                           empBridge.fireModelMethod(this.modelId,'showofflineController',json);
                        },
});

CC视频文档,直播、回放、离线

Method Parameter Description Return 示例
CCVideo(json,function(),function(errmsg)) json
* @brief 登录房间
* @param parameter 配置参数信息
* 必填参数 userId;//用户ID
* 必填参数 roomId;//房间ID
* 必填参数 viewerName;//用户名称
* 必填参数 token;//房间密码--cc后台可设置(此处免密)
* (选填参数 security;//是否使用https协议
* (选填参数) viewercustomua;
观看直播 <script>
var json = {
userId:"6F60EBB052CE541E",
roomId:"20ABFEE9780F71379C33DC5901307461",
viewerName:"puyuan",
token:null
};
Utils.CCVideo(json,function(){
log("登录成功");
},function(errmsg){
log(errmsg);
});
</script>
CCVideoPlayBack(json,function(),function(errmsg)) json
* @brief 登录房间
* @param parameter 配置参数信息
* 必填参数 userId;//用户ID
* 必填参数 roomId;//房间ID
* 必填参数 viewerName;//用户名称
* 必填参数 token;//房间密码
* 必填参数 security;//是否使用https协议
* (选填参数) viewercustomua;
* 必填参数 liveId;//直播ID,回放时才用到
* 必填参数 recordId;//回放ID
观看回放 <script>
var json = {
userId:"6F60EBB052CE541E",
roomId:"20ABFEE9780F71379C33DC5901307461",
liveId:"B5C870A430E31F52",
recordId:"7B403EBCA8895925",
viewerName:"puyuan",
token:null
};
Utils.CCVideoPlayBack(json,function(){
log("登录成功");
},function(errmsg){
log(errmsg);
});
</script>
createUserTask(remoteUrl, fileName) remoteUrl: 文件下载地址(.ccr)
fileName: String类型,文件名
离线下载,全局方法,创建用户文件下载任务对象 DownloadTask <script>
var task = $M.DownLoadManager.createUserTask(
"https://github.com/vfr/Reader/raw/master/Resources/Reader.ccr",
"sd://test/Reader.ccr"
);
task.start();
//添加下载成功回调函数
task.addEvent('onSuccess', function() {
alert('下载成功');
});
task.addEvent('onFailure',function(){
alert('下载失败');
});
</script>
decompressZipWithDec(json,function(result)) json
* @param dst 需要进行解压解密的文件.
* @param dir 解压后输出目录, =NULL则解压到当前目录.
function(result)回调, result ==’0‘的时候,解压成功
解压文件 <script>
Utils.decompressZipWithDec(json,function(result){
alert(result);
if(result == "0")
alert("解压成功")
});
</script>
showOfflineController(json) json
* @param dst 需要进行解压解密的文件.
* @param dir 解压后输出目录, =NULL则解压到当前目录.
离线播放视图 <script>
var json = {
dst:"sd://test/Reader.ccr",
dir:""
};
Utils.showOfflineController(json);
</script>

离线回放demo

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
    <nav title="tab" enableLeft="true" enableRight="true" />
        <div width="100%" height="100%" vAlign="middle" >
            <input id="gotodownLoad" type="text" emptyText="请输入下载地址" height="50" width="100%" />
            <input type="button" value="下载" onClick="butttonClick"/>
            <!-- <input type="button" value="解压" onClick="openDwonLoad"/>            -->
        </div>      
        <div width="100%" height="100%" id="contensOfflineDiv">
        </div>
</body>
<script> 
$M.page.addEvent('onLoad', function(params){
});
function butttonClick (param){
    /*  添加下载任务,下载路径、保存下载文件的地址*/
        var task = $M.DownLoadManager.createUserTask(
                    "https://github.com/vfr/Reader/raw/master/Resources/Reader.pdf",
                    "sd://test/Reader.pdf");
        task.start();
        //添加下载成功回调函数        
        task.addEvent('onSuccess', function() {
            alert('下载成功');
/*
 * @param dst 需要进行解压解密的文件.
 * @param dir 解压后输出目录, =NULL则解压到当前目录.
 */ 
        var json = {
        dst:"sd://test/Reader.pdf",
        dir:""
        };
        openDwonLoad(json);
    });
    /*下载失败  */
    task.addEvent('onFailure',function(){
        alert('下载失败');
    });
}
 function openDwonLoad(json){
   Utils.decompressZipWithDec(json,function(result){
   alert(result);
    if(result == "0")
        Utils.showOfflineController(json);
   });
 }
</script>
</html>

腾讯超级播放器文档

Method Parameter Description Return 示例
new Emp.superPlayerViews() {
height:"100%",
width:"100%"
}
创建超级播放器视图 var superPlayerView=new Emp.superPlayerViews({
height:"100%",
width:"100%"
});
showSuperView(json) var json={
appid:"1252463788",
fileid:"4564972819219071568",
videoURL:""
};
{
appid:"",
fileid:"",
videoURL:"http://.............c.mp4"
} 设置清晰度除了填写url外,更简单的使用方式是采用fileId播放。fileId在一般是在视频上传后,由服务器返回
播放视频 superPlayerView.showSuperView(json);
[ios]ConfigureMultiurl(json) json
SD:标清 url
HD:高清url
SuperD:超清 url
{
SD:"http://200024424.vod.myqcloud.com/
200024424_709ae516bdf811e6ad39991f76a4df69.f20.mp4",
HD:"http://5815.liveplay.myqcloud.com/live/
5815_62fe94d692ab11e791eae435c87f075e_900.flv",
SuperD:"http://5815.liveplay.myqcloud.com/live/
5815_62fe94d692ab11e791eae435c87f075e.flv"
};
添加配置多清晰度(ios ) Object.ConfigureMultiurl(json)
windowsPlayer() 小窗口播放 superPlayerView.windowsPlayer()
----windowsPlayer 这个方法必须在播放视频之后配置 ,否则找不到窗口会导致程序崩溃-->
resetPlayer() 退出观看 superPlayerView.resetPlayer()

超级播放器demo

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <nav title="超级播放器" enableLeft="true" enableRight="true" />
<div width="100%" height="100%" vAlign="middle" hAlign="center" layout="VBox" >
<div width="100%" height="50">
    <input type="button" value="配置多清晰度" onClick="multiVideoURLs"/>
    /*<input type="button" value="缩略图" onClick="smallPicPlayer"/>*/
    <input type="button" value="显示小窗播放" onClick="windowsPlayer"/>
    </div>
<div width="100%" height="50" >
    <input type="button" value="观看视频" onClick="starVideo"/>
    <input type="button" value="退出观看" onClick="resetPlayer"/>
</div>  
<div width="100%" height="100%" id="superDiv">
</div>
</div>
</body>
<script>
    $M.page.addEvent('onLoad', function(params){
    });
        var superPlayerView=new Emp.superPlayerViews({
            height:"100%",
            width:"100%"
        });
        superDiv.add(superPlayerView);
        
        function starVideo(){
            /* appid、fileid
              *
设置清晰度除了填写url外,更简单的使用方式是采用fileId播放。fileId在一般是在视频上传后,由服务器返回
            */
                      var json={
                appid:"1252463788",
                fileid:"4564972819219071568",
                videoURL:""
            };
            //var url = "http://200024424.vod.myqcloud.com/200024424_709ae516bdf811e6ad39991f76a4df69.f20.mp4";
            superPlayerView.showSuperView(json);
        
        };
        function multiVideoURLs(){
        /*
        *添加配置多清晰度
        *SD:标清 url
        *HD:高清url
        *SuperD:超清 url
        */
            var json={
                SD:"http://200024424.vod.myqcloud.com/200024424_709ae516bdf811e6ad39991f76a4df69.f20.mp4",
                HD:"http://5815.liveplay.myqcloud.com/live/5815_62fe94d692ab11e791eae435c87f075e_900.flv",
                SuperD:"http://5815.liveplay.myqcloud.com/live/5815_62fe94d692ab11e791eae435c87f075e.flv"
            };
            superPlayerView.ConfigureMultiurl(json);
            alert('ok');
        };
        
        <!-- 缩略图需要在SDK中做相应操作- -->
        function smallPicPlayer(){
        /*
        *配置缩略图
        */
        // superPlayerView.smallPicPlayer();
        //  alert('ok');
        //}

        <!-- ----- windowsPlayer 这个方法必须最后配置 ,否则找不到窗口会导致程序崩溃-->
        function windowsPlayer(){
        /*
        *小窗口播放
        */
         superPlayerView.windowsPlayer();
        
        }
        function resetPlayer(){
        /*
        *退出观看
        */
        superPlayerView.resetPlayer();
        alert('ok');
        }
        
</script>
</html>

微博分享,以及MTA统计

Method Parameter Description Return 示例
shareWeibochat(data,function(retCode,retMsg) //image、text、webUrl可以允许单项为空,图片、文字、与多媒体不能组合分享
var data = {
"image" : {"imagePath" : "/images/app.png"} ,
"text" :{ "text" : "我要分享的内容是2月14日情人节" } ,
"webUrl" : { "actionUrl" : "https://weibo.com",
"defaultText" : "默认网页",
"description" : "描述文字",
"thumbData" : "/images/app.png",
"title" : "测试网页"
}
}
微博分享,可单独分享文本,网页,图片 Utils.shareWeibochat(data,function(retCode,retMsg){
log(retCode+','+retMsg);
toast(retCode+','+retMsg);
});
Utils.beginLoadPage('xxxx.html'); 2 开始进入界面 3 $M.page.addEvent('onLoad', function(param{
Utils.beginLoadPage('index.html');
});
Utils.endLoadPage('xxx.html'); 2 离开界面时使用,与开始结合使用,否则无效 3 Utils.endLoadPage('xxx.html');
$M.page.goTo('/xxx.htmlx', null, false);
Utils.eventIDClick(eventid,lableType); @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
lableType:事件类型
统计点击事件 function share(){Utils.eventIDClick("share","shareType");}
上一篇下一篇

猜你喜欢

热点阅读