保利威文档中心

幫助中心

10分鐘玩轉一場直播

更新時間:2022-09-13 11:51:28

目標

  本文檔將一步一步帶領在10分鐘內快速完成一場直播的完整業務流程,本文檔適合快速搭建一個直播間,設定相關資訊後,完成直播,查看直播詳細觀看數據優化直播流程的業務場景。

注意:每建立一個頻道,會預設建立4個助教子頻道,子頻道用於協助主講老師教學或者和使用者互動,當然也可以建立自己的子頻道,例如客服、班主任、嘉賓等,具體見下面帶子頻道直播教學場景和帶子頻道純影片場景

直播教學場景

  此場景適合於通用的線上教學場景,相當於一個虛擬的教室,包括頻道建立、頻道初始化、暖場圖片/影片、引導圖片、講師資訊、直播文件上傳等設定,相關程式碼可以參考下面程式碼,直接複製後修改成為適合自己的課程資訊就可以。

注意:每一個頻道會預設建立4個子頻道,透過範例程式碼的回傳物件可以取得所有的子頻道資訊

效果展示

講師端效果:

image-20210113150803936

助教端:

  • 助教可以查看直播狀態;
  • 助教可以查看聊天室成員資訊;
  • 助教可以對聊天室嚴禁詞、禁言人員、踢人等進行管理;
  • 助教可以協助講師對提問、問答和使用者進行溝通;
  • 助教可以參與聊天,活躍課堂氣氛;

image-20210113163748017

嘉賓端:

嘉賓預設以連麥的方式進入直播間,和講師互動;

image-20210113161733987

觀看端效果:

體驗連結:https://live.polyv.cn/watch/2094038

image-20210113142649565

image-20210113143307598

流程

  以下範例程式碼會根據設定的參數,自動選擇呼叫哪些介面,預設會呼叫建立頻道、頻道初始化設定等介面,如果不需要相關功能,去除相關程式碼即可,例如:不需要建立子頻道功能,去除範例程式碼中的liveCreateSonChannelListRequest.setSonChannels(sonChannels);即可。註:如果同時設定了暖場影片和暖場圖片,暖場影片會覆蓋暖場圖片;

graph LR
style A fill:#00ae9d,stroke:#323232,stroke-width:1px
style B fill:#f29952,stroke:#323232,stroke-width:1px
style C fill:#608913,stroke:#323232,stroke-width:1px
style D fill:#2ca9e0,stroke:#323232,stroke-width:1px
style E fill:#fbdd2d,stroke:#323232,stroke-width:1px
style F fill:#90d6ab,stroke:#323232,stroke-width:1px
style G fill:#2ca9e0,stroke:#323232,stroke-width:1px
style H fill:#e7372a,stroke:#323232,stroke-width:1px
style I fill:#40c1dd,stroke:#323232,stroke-width:1px
style J fill:#bf83ff,stroke:#323232,stroke-width:1px
A[创建频道] --> B[频道初始化设置]
B --> C[暖场图片设置]
B --> D[暖场视频设置]
B --> E[设置讲师信息]
B --> J[创建子频道]
B --> F[设置课件]
subgraph "频道设置(可多选)"
C
D
E
F
J
end
C --> G[封装频道返回]
D --> G
E --> G
J --> G
F --> G
G --> H[开始直播]
H --> I["结束直播,获取观看数据"]

程式碼範例

     /**
     * 快速创建带子频道的三分屏频道,适用于直播教学场景
     * @throws IOException IO异常
     * @throws NoSuchAlgorithmException 系统异常
     */
//    @Test
    public void testQuickCreatePPTAndSonChannel() throws IOException, NoSuchAlgorithmException {
        //初始化系统,请配置自己的账号信息,正式使用时请全局统一设置
        String userId = "xxx";
        String appId = "xxx";
        String appSecret = "xxx";
        LiveGlobalConfig.init(appId, userId, appSecret);
        log.debug("--初始化完成--");
        
        QuickCreatePPTChannelRequest quickCreatePPTChannelRequest = new QuickCreatePPTChannelRequest();
        QuickCreateChannelResponse quickCreateChannelResponse;
        String path = LiveChannelQuickCreatorTest.class.getResource("/file/PPT.pptx").getPath();
        Calendar instance = Calendar.getInstance();
        instance.set(Calendar.DAY_OF_MONTH, instance.get(Calendar.DAY_OF_MONTH) + 1);
        //创建频道
        //频道相关基础设置-频道名
        quickCreatePPTChannelRequest.setName("带子频道的直播教学场景")
                //频道相关基础设置-频道密码
                .setChannelPasswd(getRandomString(6))
                //频道相关基础设置-连麦人数
                .setLinkMicLimit(5)
                //频道相关基础设置-主持人名称
                .setPublisher("thomas教授")
                //频道相关基础设置-是否无延迟
                .setPureRtcEnabled(LiveConstant.Flag.YES.getFlag())
                //频道相关基础设置-开播时间
                .setStartTime(instance.getTime().getTime())
                //==========================================
                //频道初始化设置-频道图标地址
                .setCoverImg("https://wwwimg.polyv.net/assets/dist/images/v2020/page-home/brand-advantage/row-2-3.svg")
                //频道初始化设置-引导图地址
                .setSplashImg(
                        "https://wwwimg.polyv.net/assets/dist/images/v2020/news-info-md/product-dynamic-bg_v3.jpg")
                //频道初始化设置-频道描述
                .setDesc("POLYV保利威是易方信息科技股份有限公司旗下拥有自主知识产权的视频云计算服务平台,其中包含 云点播 、云直播 " +
                        "和其它视频服务,提供API、SDK技术支持,并拥有国家专利级别的PlaySafe®视频版权保护技术及三套CDN加速,致力为用户提供稳定、安全、快速的企业级视频云服务。")
                //频道初始化设置-设置暖场图
                .setCoverImage("https://s1.videocc.net/live-watch/assets/img/default-splash-img.07657078.jpg")
                //频道初始化设置-点击暖场图跳转的地址
                .setCoverHref("http://www.baidu.com")
                //频道初始化设置-设置暖场视频
//              .setWarmUpFlv("http://www.w3school.com.cn/example/html5/mov_bbb.mp4")
                //==========================================
                //聊天室讲师信息-昵称
                .setNickname("thomas-gogo")
                //聊天室讲师信息-讲师头衔
                .setActor("刘老师")
                //聊天室讲师信息-讲师头像
                .setAvatar(
                        "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2069606413,3553249962&fm=26&gp=0" +
                                ".jpg")
                //==========================================
                // 讲课文档设置-讲课文档,当前支持DOC、PPT、PDF
                .setFile(new File(path))
                //讲课PPT设置-转换类型(‘common’:转普通图片, ‘animate’:转动画效果)
                .setType("common")
                //讲课PPT设置-文档名称
                .setDocName("直播教学课件");
//                //讲课PPT设置-文档转换完成后的回调地址,不需要不传
//                .setCallbackUrl("http://www.baidu.com/callback")
                
        
        LiveCreateSonChannelListRequest liveCreateSonChannelListRequest = new LiveCreateSonChannelListRequest();
        List<LiveCreateSonChannelListRequest.SonChannel> sonChannels = new ArrayList<LiveCreateSonChannelListRequest.SonChannel>();
        sonChannels.add(setSonChannelsInfo1());
        sonChannels.add(setSonChannelsInfo2());
        liveCreateSonChannelListRequest.setSonChannels(sonChannels);
        
        quickCreateChannelResponse = new LiveChannelQuickCreatorServiceImpl().quickCreatePPTSence(quickCreatePPTChannelRequest,
                liveCreateSonChannelListRequest);
        Assert.assertNotNull(quickCreateChannelResponse);
        log.debug("快速创建三分屏频道成功,{}", JSON.toJSONString(quickCreateChannelResponse));
        log.debug("网页开播地址:https://live.polyv.net/web-start/login?channelId={}  , 登录密码: {}",
                quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId(),
                quickCreatePPTChannelRequest.getChannelPasswd());
        log.debug("网页观看地址:https://live.polyv.cn/watch/{} ",
                quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId());
        log.debug("嘉宾进入直播间地址:http://live.polyv.net/web-start/guest?channelId={} ,登录密码: {} ",
                quickCreateChannelResponse.getSonChannelInfos().get(0).getAccount(),
                sonChannels.get(0).getPasswd());
        log.debug("助教进入直播间地址:https://live.polyv.net/teacher.html , 登录频道: {}, 登录密码: {}",
                quickCreateChannelResponse.getSonChannelInfos().get(1).getAccount(),
                sonChannels.get(1).getPasswd());
        /**
         * todo : B端客户的业务逻辑,将quickCreateChannelResponse的相关信息保持到自己的DB中组织业务逻辑
         */
    
        /**
         * todo : 采用网页开播或者客户端开播,直播结束后 ,可以拉取用户观看直播的观看数据,对观看效果做进一步的分析,改进直播流程和细节
         */
        //打印观看日志
        printViewLog(quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId());
    }

 /**
     * 设置子频道信息-嘉宾
     * @return 子频道列表
     */
    private LiveCreateSonChannelListRequest.SonChannel setSonChannelsInfo1() {
        LiveCreateSonChannelListRequest.SonChannel sonChannel1 = new LiveCreateSonChannelListRequest.SonChannel();
        //设置子频道信息,子频道代表助教、嘉宾信息
        sonChannel1
                //子频道角色-默认不传为助教,传Guest为嘉宾
                .setRole("Guest")
                //子频道昵称
                .setNickname("嘉宾-陈先生")
                //子频道登录密码
                .setPasswd(getRandomString(10))
                //子频道头衔
                .setActor("教授")
                //子频道头像
                .setAvatar(
                        "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2480846186,1530344&fm=15&gp=0.jpg");
        return sonChannel1;
    }
    
    /**
     * 设置子频道信息-助教
     * @return 子频道列表
     */
    private LiveCreateSonChannelListRequest.SonChannel setSonChannelsInfo2() {
        LiveCreateSonChannelListRequest.SonChannel sonChannel2 = new LiveCreateSonChannelListRequest.SonChannel();
        sonChannel2.setRole(null)
                .setNickname("助教-王小姐")
                .setPasswd(getRandomString(10))
                .setActor("王老师")
                .setAvatar("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=356414612,1103487565&fm=15&gp=0" +
                        ".jpg");
        return sonChannel2;
    }
    
    /**
     * 打印频道观看日志
     * @param channelId
     * @throws IOException
     * @throws NoSuchAlgorithmException
     */
    private void printViewLog(String channelId) throws IOException, NoSuchAlgorithmException {
        LiveListChannelViewlogRequest liveListChannelViewlogRequest = new LiveListChannelViewlogRequest();
        LiveListChannelViewlogResponse liveListChannelViewlogResponse;
        Calendar instance = Calendar.getInstance();
        instance.set(Calendar.DAY_OF_MONTH, instance.get(Calendar.DAY_OF_MONTH) + 2);
        //依据频道号和起止时间查询观看日志
        liveListChannelViewlogRequest.setChannelId(channelId)
                .setStartTime(new Date())
                .setEndTime(instance.getTime());
        liveListChannelViewlogResponse = new LiveChannelViewdataServiceImpl().listChannelViewlog(
                liveListChannelViewlogRequest);
        Assert.assertNotNull(liveListChannelViewlogResponse);
        if (liveListChannelViewlogResponse != null) {
            //to do something ......
            log.debug("测试分页查询频道观看日志成功,{}", JSON.toJSONString(liveListChannelViewlogResponse));
        }
    }

請求描述

參數名 必選 類型 說明
name true String 自訂頻道名稱,一般是課程主題、會議主題、培訓主題等,例如 財務制度培訓、烏鎮峰會
channelPasswd true String 自訂頻道密碼,B端講師透過該密碼進入直播間開播,長度不能超過16位,必須同時包含字母和數字
linkMicLimit false Integer 連麥人數,-1=<取值範圍<=帳號級的連麥人數,-1:表示使用帳號預設的連麥人數,最大16人(註:帳號級連麥人數需通知平台管理員設定才生效)
publisher false String 主持人名稱
pureRtcEnabled false String 是否為無延遲直播,Y 表示開啟,預設為N
coverImg false String 頻道圖示地址
splashImg false String 引導圖地址
startTime false Long 直播開始時間,13位時間戳,設定為0 表示關閉直播開始時間顯示
desc false String 直播介紹
nickname false String 講師暱稱
actor false String 講師頭銜,講師暱稱不為空時該參數必填
avatar false String 頭像圖片地址
coverImage false String 暖場圖片地址,圖片大小建議:800x450,支援PNG、JPEG、GIF格式
coverHref false String 點擊暖場圖片後瀏覽器跳轉地址
warmUpFlv false String 暖場影片地址(http地址),行動端不支援FLV影片檔案,建議使用MP4影片檔案
file false File 上傳的檔案不超過50M,格式限制為(ppt, pdf,pptx,doc,docx,wps, xls,xlsx)
type false String 轉換類型(‘common’:轉普通圖片, ‘animate’:轉動畫效果)預設不傳轉普通,因為只有ppt,pptx可以轉動畫,其他類型檔案會自動轉成普通;檔案轉動畫轉失敗會直接把類型轉為普通
docName false String 文件名稱(不傳預設使用ppt上傳的檔案取得的檔案名稱作為文件名稱,文件名稱不得超過100個字元)
callbackUrl false String 文件上傳轉換成功回調地址

返回描述

參數名 類型 說明
liveChannelBasicInfoResponse LiveChannelBasicInfoResponse 頻道資訊【詳見LiveChannelBasicInfoResponse參數描述
sonChannelInfos Array 子頻道資訊【詳見LiveSonChannelInfoResponse參數描述
LiveChannelBasicInfoResponse參數描述
參數名 類型 說明
channelId String 頻道號
name String 頻道名稱
channelPasswd String 頻道密碼
publisher String 主持人名稱
startTime Date 直播開始時間,關閉時為null
pageView Integer 頁面累計觀看數
likes Integer 觀看頁點讚數
coverImg String 頻道圖示url
splashImg String 頻道引導圖url
splashEnabled String 引導頁開關(取值為Y/N)
desc String 直播介紹
consultingMenuEnabled String 諮詢提問開關(取值為Y/N)
maxViewerRestrict String 限制最大線上觀看人數開關(取值為Y/N)
maxViewer Integer 最大線上觀看人數
watchStatus String 頻道的觀看頁狀態,取值為:live(直播中)、end(直播結束)、playback(回放中)、waiting(等待直播)
watchStatusText String 觀看頁狀態描述,直播中,回放中,已結束,未開始
userCategory UserCategory 頻道所屬分類的資訊【詳見UserCategory參數描述
authSettings Array 直播觀看條件列表【詳見AuthSetting參數描述
LiveSonChannelInfoResponse參數描述
參數名 類型 說明
account String 子頻道號
userId String POLYV使用者ID,和保利威官網一致,取得路徑:官網->登入->直播(開發設定)
channelId String 頻道號
passwd String 子頻道密碼
nickname String 子頻道名稱
stream String 子頻道流名(單獨使用無效)
status String 子頻道狀態
createdTime Date 建立子頻道時間
lastModified Date 子頻道最後修改時間
sort Integer 頻道中所有子頻道序號
avatar String 子頻道頭像
pageTurnEnabled String 子頻道翻頁權限(只能一個子頻道有)
notifyEnabled String 發布公告權限(Y/N)
checkinEnabled String 開啟簽到權限(Y/N)
voteEnabled String 發起投票(Y/N)
role String 子頻道角色
pushUrl String 子頻道推流地址(子頻道推流請參考後台導播台使用)
UserCategory參數描述
參數名 類型 說明
categoryId Integer 分類ID
categoryName String 分類名稱
userId String POLYV使用者ID,和保利威官網一致,取得路徑:官網->登入->直播(開發設定)
rank Integer 分類的排序值
AuthSetting參數描述
參數名 類型 說明
channelId String 頻道號
userId String POLYV使用者ID,和保利威官網一致,取得路徑:官網->登入->直播(開發設定)
rank Integer 用於實現一個頻道設定兩個觀看條件,為1或2(1為主要條件,2為次要條件)
globalSettingEnabled String 是否開啟全域設定(Y/N)
enabled String 是否開啟觀看條件(Y/N)
authType String 觀看條件類型(1. 無限制 none 2. 驗證碼觀看 code 3. 付費觀看 pay 4. 白名單觀看 phone 5. 登記觀看 info 6. 分享觀看 wxshare 7. 自訂授權觀看 custom 8. 外部授權觀看 external)
authTips String 白名單觀看提示資訊
payAuthTips String 付費觀看提示資訊
authCode String 驗證碼觀看方式的驗證碼
qcodeTips String 驗證碼觀看方式的二維碼提示
qcodeImg String 驗證碼觀看方式的二維碼圖片
price Float 付費觀看的價格
watchEndTime Date 付費觀看,截止時間,為null表示:一次付費,永久有效
validTimePeriod Integer 付費觀看的截止時長(天)
customKey String 自訂授權觀看的key
customUri String 自訂授權觀看的介面地址
externalKey String 外部授權觀看的key
externalUri String 外部授權觀看的介面地址
externalRedirectUri String 外部授權觀看,使用者直接存取觀看頁時的跳轉地址

普通影片場景

  此場景適合非教學情況下的其他場景,比如直播帶貨、會議直播、年會直播的場景,和直播教學場景的區別是主播端和觀看端的頁面排版不同,直播教學場景以三分螢幕的方式將講師頭像、課件、白板、聊天室整合到一個頁面呈現給終端使用者,而普通影片場景同時只能呈現講師攝影機、文件、電腦螢幕的一種,一般情況直接展現講師攝影機採集的畫面。

注意:每一個頻道會預設建立4個子頻道,透過範例程式碼的回傳物件可以取得所有的子頻道資訊

效果展示

講師端效果(呈現文件給終端使用者):

image-20210113173428388

講師端效果(呈現講師攝影機採集資訊給終端使用者):

image-20210113174258015

觀看端效果:

image-20210114142711067

image-20210113173537125

助教端:

  • 助教可以查看直播狀態;

  • 助教可以查看聊天室成員資訊;

  • 助教可以對聊天室嚴禁詞、禁言人員、踢人等進行管理;

  • 助教可以協助講師對提問、問答和使用者進行溝通;

  • 助教可以參與聊天,活躍課堂氣氛;

    image-20210114143638606

流程

  如下流程除了 頻道建立 和 頻道初始化 必須執行,其他都是可選,暖場圖片/影片 、講師資訊 、 直播PPT上傳,不設相關參數,這些介面將不會被呼叫,暖場影片和暖場圖片只有一個有效,如果同時設定了暖場影片和暖場圖片,暖場影片會覆蓋暖場圖片;

graph LR
style A fill:#00ae9d,stroke:#323232,stroke-width:1px
style B fill:#f29952,stroke:#323232,stroke-width:1px
style C fill:#608913,stroke:#323232,stroke-width:1px
style D fill:#2ca9e0,stroke:#323232,stroke-width:1px
style E fill:#fbdd2d,stroke:#323232,stroke-width:1px
style F fill:#90d6ab,stroke:#323232,stroke-width:1px
style G fill:#2ca9e0,stroke:#323232,stroke-width:1px
style H fill:#e7372a,stroke:#323232,stroke-width:1px
style I fill:#40c1dd,stroke:#323232,stroke-width:1px
style J fill:#bf83ff,stroke:#323232,stroke-width:1px
A[创建频道] --> B[频道初始化设置]
B --> C[暖场图片设置]
B --> D[暖场视频设置]
B --> E[设置讲师信息]
B --> J[创建子频道]
B --> F[设置课件]
subgraph "频道设置(可多选)"
C
D
E
F
J
end
C --> G[封装频道返回]
D --> G
E --> G
J --> G
F --> G
G --> H[开始直播]
H --> I["结束直播,获取观看数据"]

程式碼範例

/**
 * 快速创建纯视频频道,适合直播带货、会议、年会、活动拍摄、大会直播等直播业务场景
 * 约束:2、同时设置暖场图片和暖场视频只生效暖场视频。
 * @throws IOException IO异常
 * @throws NoSuchAlgorithmException 系统异常
 */
//    @Test
public void testQuickCreateVideoAndSonChannel() throws IOException, NoSuchAlgorithmException {
        //初始化系统,请配置自己的账号信息,正式使用时请全局统一设置
        String userId = "xxx";
        String appId = "xxx";
        String appSecret = "xxx";
        LiveGlobalConfig.init(appId, userId, appSecret);
        log.debug("--初始化完成--");
        
        QuickCreateVideoChannelRequest quickCreateVideoChannelRequest = new QuickCreateVideoChannelRequest();
        QuickCreateChannelResponse quickCreateChannelResponse;
        Calendar instance = Calendar.getInstance();
        instance.set(Calendar.DAY_OF_MONTH, instance.get(Calendar.DAY_OF_MONTH) + 1);
        //创建频道

        //频道相关基础设置-频道名
        quickCreateVideoChannelRequest.setName("带子频道的纯视频直播场景")
        //频道相关基础设置-频道密码
        .setChannelPasswd(getRandomString(6))
        //频道相关基础设置-连麦人数
        .setLinkMicLimit(5)
        //频道相关基础设置-观看页显示的主讲人描述
        .setPublisher("thomas教授")
        //频道相关基础设置-是否无延迟
        .setPureRtcEnabled(LiveConstant.Flag.YES.getFlag())
        //频道相关基础设置-开播时间
        .setStartTime(instance.getTime().getTime())
        //==========================================
        //频道初始化设置-频道图标地址
        .setCoverImg("https://wwwimg.polyv.net/assets/dist/images/v2020/page-home/brand-advantage/row-2-3.svg")
        //频道初始化设置-引导图地址
        .setSplashImg(
        "https://wwwimg.polyv.net/assets/dist/images/v2020/news-info-md/product-dynamic-bg_v3.jpg")
        //频道初始化设置-频道描述
        .setDesc("POLYV保利威是易方信息科技股份有限公司旗下拥有自主知识产权的视频云计算服务平台,其中包含 云点播 、云直播 " +
        "和其它视频服务,提供API、SDK技术支持,并拥有国家专利级别的PlaySafe®视频版权保护技术及三套CDN加速,致力为用户提供稳定、安全、快速的企业级视频云服务。")
        //频道初始化设置-设置暖场图
        .setCoverImage("https://s1.videocc.net/live-watch/assets/img/default-splash-img.07657078.jpg")
        //频道初始化设置-点击暖场图跳转的地址
        .setCoverHref("http://www.baidu.com")
        //频道初始化设置-设置暖场视频
//              .setWarmUpFlv("http://www.w3school.com.cn/example/html5/mov_bbb.mp4")
        //==========================================
        //聊天室讲师信息-昵称
        .setNickname("thomas-gogo")
        //聊天室讲师信息-讲师头衔
        .setActor("刘老师")
        //聊天室讲师信息-讲师头像
        .setAvatar(
        "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2069606413,3553249962&fm=26&gp=0" +
        ".jpg");

        LiveCreateSonChannelListRequest liveCreateSonChannelListRequest = new LiveCreateSonChannelListRequest();
        List<LiveCreateSonChannelListRequest.SonChannel> sonChannels = new ArrayList<>();
        //纯视频场景只能创建助教,不允许创建嘉宾
        sonChannels.add(setSonChannelsInfo2());
        liveCreateSonChannelListRequest.setSonChannels(sonChannels);

        //请求服务器,创建带子频道的纯视频频道
        quickCreateChannelResponse = new LiveChannelQuickCreatorServiceImpl().quickCreateVideoSence(quickCreateVideoChannelRequest,
        liveCreateSonChannelListRequest);

        Assert.assertNotNull(quickCreateChannelResponse);
        log.debug("快速创建纯视频直播频道成功,{}", JSON.toJSONString(quickCreateChannelResponse));
        //无延迟纯视频模式只支持客户端开播
        if (LiveConstant.Flag.YES.getFlag().equals(quickCreateVideoChannelRequest.getPureRtcEnabled())) {
        log.debug("客户端开播地址:https://live.polyv.net/start-client.html?channelId={}  , 登录密码: {}",
        quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId(),
        quickCreateVideoChannelRequest.getChannelPasswd());
        } else {
        log.debug("网页开播地址:https://live.polyv.net/web-start/login?channelId={}  , 登录密码: {}",
        quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId(),
        quickCreateVideoChannelRequest.getChannelPasswd());
        }
        log.debug("网页观看地址:https://live.polyv.cn/watch/{} ",
        quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId());

        //无延迟纯视频模式只支持客户端助教视频连麦
        if (LiveConstant.Flag.YES.getFlag().equals(quickCreateVideoChannelRequest.getPureRtcEnabled())) {
        log.debug("助教客户端进入直播间地址:https://live.polyv.net/teacher.html , 登录频道: {}, 登录密码: {}",
        quickCreateChannelResponse.getSonChannelInfos().get(0).getAccount(),
        sonChannels.get(0).getPasswd());
        } else {
        log.debug("助教进入直播间地址:https://live.polyv.net/teacher.html , 登录频道: {}, 登录密码: {}",
        quickCreateChannelResponse.getSonChannelInfos().get(0).getAccount(),
        sonChannels.get(0).getPasswd());
        }

        /**
         * todo : B端客户的业务逻辑,将quickCreateChannelResponse的相关信息保持到自己的DB中组织业务逻辑
         */

        /**
         * todo : 采用网页开播或者客户端开播,直播结束后 ,可以拉取用户观看直播的观看数据,对观看效果做进一步的分析,改进直播流程和细节
         */
        //打印观看日志
        printViewLog(quickCreateChannelResponse.getLiveChannelBasicInfoResponse().getChannelId());
        }


/**
 * 设置子频道信息-助教
 * @return 子频道列表
 */
private LiveCreateSonChannelListRequest.SonChannel setSonChannelsInfo2() {
        LiveCreateSonChannelListRequest.SonChannel sonChannel2 = new LiveCreateSonChannelListRequest.SonChannel();
        sonChannel2.setRole(null)
        .setNickname("助教-王小姐")
        .setPasswd(getRandomString(10))
        .setActor("王老师")
        .setAvatar("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=356414612,1103487565&fm=15&gp=0" +
        ".jpg");
        return sonChannel2;
        }



/**
 * 打印频道观看日志
 * @param channelId
 * @throws IOException
 * @throws NoSuchAlgorithmException
 */
private void printViewLog(String channelId) throws IOException, NoSuchAlgorithmException {
        LiveListChannelViewlogRequest liveListChannelViewlogRequest = new LiveListChannelViewlogRequest();
        LiveListChannelViewlogResponse liveListChannelViewlogResponse;
        Calendar instance = Calendar.getInstance();
        instance.set(Calendar.DAY_OF_MONTH, instance.get(Calendar.DAY_OF_MONTH) + 2);
        //依据频道号和起止时间查询观看日志
        liveListChannelViewlogRequest.setChannelId(channelId)
        .setStartTime(new Date())
        .setEndTime(instance.getTime());
        liveListChannelViewlogResponse = new LiveChannelViewdataServiceImpl().listChannelViewlog(
        liveListChannelViewlogRequest);
        Assert.assertNotNull(liveListChannelViewlogResponse);
        if (liveListChannelViewlogResponse != null) {
        //to do something ......
        log.debug("测试分页查询频道观看日志成功,{}", JSON.toJSONString(liveListChannelViewlogResponse));
        }
        } 

請求描述

參數名 必選 類型 說明
name true String 自訂頻道名稱,一般是課程主題、會議主題、培訓主題等,例如 財務制度培訓、烏鎮峰會
channelPasswd true String 自訂頻道密碼,B端講師透過該密碼進入直播間開播,長度不能超過16位,必須同時包含字母和數字
linkMicLimit false Integer 連麥人數,-1=<取值範圍<=帳號級的連麥人數,-1:表示使用帳號預設的連麥人數,最大16人(註:帳號級連麥人數需通知平台管理員設定才生效)
publisher false String 觀看頁顯示的主講人描述
pureRtcEnabled false String 是否為無延遲直播,Y 表示開啟,預設為N
coverImg false String 頻道圖示地址
splashImg false String 引導圖地址
desc false String 直播介紹
startTime false Long 直播開始時間,13位時間戳,設定為0 表示關閉直播開始時間顯示
coverImage false String 暖場圖片地址,圖片大小建議:800x450,支援PNG、JPEG、GIF格式
coverHref false String 點擊暖場圖片後瀏覽器跳轉地址
warmUpFlv false String 暖場影片地址(http地址),行動端不支援FLV影片檔案,建議使用MP4影片檔案
nickname false String 講師暱稱
actor false String 講師頭銜,講師暱稱不為空時該參數必填
avatar false String 頭像圖片地址

返回描述

參數名 類型 說明
liveChannelBasicInfoResponse LiveChannelBasicInfoResponse 頻道資訊【詳見LiveChannelBasicInfoResponse參數描述
sonChannelInfos Array 子頻道資訊【詳見LiveSonChannelInfoResponse參數描述
LiveChannelBasicInfoResponse參數描述
參數名 類型 說明
channelId String 頻道號
name String 頻道名稱
channelPasswd String 頻道密碼
publisher String 主持人名稱
startTime Date 直播開始時間,關閉時為null
pageView Integer 頁面累計觀看數
likes Integer 觀看頁點讚數
coverImg String 頻道圖示url
splashImg String 頻道引導圖url
splashEnabled String
联系客服,在线咨询