云课堂API相关

日期: 2019-06-18

创盛视联数码科技(北京)有限公司

[TOC]

1.概述

websdk 是一个适用于chrome浏览器平台的直播SDK,使用此SDK可以与CC视频云服务进行对接,在chrome浏览器使用CC视频的小班课音视频服务。

1.1 功能特性

websdk目前包含音视频sdk、配置更新聊天插件、排麦插件

1.1.1 音视频sdk功能

功能 描述
音视频 支持音视频互动
桌面共享 支持屏幕共享至互动者
广播 支持获取广播通知消息
视频连麦 支持与讲师进行视频连麦
音频连麦 支持与讲师进行音频连麦
获取在线人数 支持获取直播间在线人数
多清晰度 支持不同码率推流

1.2 阅读对象

本文档为技术文档,需要阅读者:

  • 具备基本的JavaScript开发能力
  • 准备接入CC视频的云课堂音视频SDK相关功能

2.开发准备

2.1 开发环境

  • 浏览器 : chrome浏览器
  • 网络协议 : https 或 localhost本机环境
  • 账号权限:已经开通cc开发者账号

3.快速集成

注:快速集成主要提供的音视频推拉流(核心功能)。

3.1 在线引用sdk及插件

3.1.1 在线引用sdk

<script src="https://class.csslcloud.net/static/dist/js/websdk_4.0.js"></script>

3.2 获取sessionid

通过api获取sessionid

api加密方法

3.3 初始化sdk

var rtc = new Rtc({
    userid: userid, // 用户ID
    sessionid: sessionid //  通过api获取
});

3.4 重要事件监听

rtc.on('login_success', function (data) {
   // 账号登录成功
   console.log(data,'login_success');
});

rtc.on('login_failed', function (err) {
    // 账号登录失败
    console.error('登录失败',err);
});

rtc.on('conference_join', function (streams) {
    // 加入房间成功
    console.log('conference_join', streams);
});

rtc.on('conference_join_failed', function (err) {
    // 加入房间失败
    console.log('加入房间失败',err);
});

rtc.on('allow_sub', function (stream) {
    // 订阅进入房间的流
    if(stream instanceof Woogeen.RemoteMixedStream){
        console.log('是混合流,不定阅');
    }else{
        rtc.trySubscribeStream({
            tryStream: stream,
            success:function(stream){
                // 订阅流成功
                var streamId = stream.id(); // 获取流id
                console.log('订阅流成功', streamId);
                //将视频动态插入盒子id为domid的盒子中,
                // domid最好与流id有关联方便移除
                stream.show(domid);
            },
            fail: function(err){
                console.log(err);
            }
        });
    }
});

rtc.on('unSub', function(stream){
    //  监听取消订阅流
    rtc.unSubscribeStream({
        unSubStream: stream,
        success:function(id){
            console.log('取消订阅成功', id);
        },
        fail: function(err){
            console.log('取消订阅失败', err);
        }
    });
});


rtc.on('stream_removed', function (id) {
    // 房间内有流退出或中断,移除相应dom
    console.log('stream_removed', id);
    //将本地放该流的dom移除掉
});

3.5 主动调用方法

*用户进入房间后,查询直播是否开启,若已开启,可直接创建本地流推流,若没开始直播,则需要调开始直播接口后方可推流

// 查询直播状态
rtc.getLiveStat({
    success: function(){
        // 创建本地流推流
        CreateStreamPublish();
    },
    fail: function(){
        // 开启直播
        rtc.startLive({
            success: function(){
                    // 创建本地流推流
                 CreateStreamPublish();
            }
        });
    }
});

// 创建并推送本地流
function CreateStreamPublish(){
    rtc.createLocalStream({
        streamName: 'main',
        success: function(stream){
           // 将本地流显示在id 为 'my'的盒子里
            stream.show('my');
            // 推送本地流
            rtc.publish({
                streamName: 'main',
                success: function(stream){
                     console.log('本地流推送成功', value.id());
                }
            });

        },
        fail: function(err){
            console.log(err);
        }
    });

}

4.功能使用

详细功能列表见api文档 和 应用demo

5.API查询

1.音视频sdk api文档

2.配置更新、聊天插件api文档

3.排麦插件api文档

6.Q&A

6.1 创建本地流失败

建议:

1.检查音视频设备是否正常

2.检查浏览器版本是否满足要求,推荐chrome57以上版本浏览器

3.检查网络开发环境是不是https或者localhost本机环境

6.2 桌面共享无法使用

说明:

1.使用桌面共享需要在https网络环境使用

2.使用桌面共享需要配置包含当前网络域名的插件,此插件需联系cc技术人员提供

6.3 sessionid使用说明

1.获取到的sessionid 默认有效期是24小时,同一设备,登陆同一个房间的同一个角色('presenter','talker'), 可以重复使用,不用每次初始化sdk都去获取新的sessionid

2.同一个sessionid初始化的用户,在用户列表代表同一个用户

results matching ""

    No results matching ""