1.概述

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

1.1 功能特性

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

1.1.1 音视频sdk功能

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

1.1.2 配置修改、图文聊天插件包含功能

功能 描述
房间级配置修改 支持修改房间级配置
个人配置修改 支持个人配置状态管理
广播 支持获取广播通知消息
图文聊天 支持传递图文消息

1.1.3 排麦插件包含功能

功能 描述
多中连麦模式支持 自定义多种连麦场景(自由、举手、自动)

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_3.0.js"></script>

3.1.2 在线引用配置更新、聊天插件

需使用聊天功能、修改房间级配置、修改个人配置,可在线引用配置更新、聊天插件

3.1.3 在线引用排麦插件

需使用特定场景连麦模式,可在线引用排麦插件

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'的盒子里
            v.show('my');
            // 推送本地流
            rtc.publish({
                streamName: 'main',
                success: function(stream){
                     console.log('本地流推送成功', value.id());
                }
            });

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

}

4.功能使用

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

5.API查询

音视频sdk api文档

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

排麦插件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 ""