1. AppId和AppSecret怎么可以更好的保护?


建议将AppId和AppSecret放在自己的服务器上,需要的时候去服务器上获取。

2. 白名单、F码的使用流程?


白名单:在请求活动信息之前,先请求活动的观看权限API,返回结果里如果在白名单列表里,再去请求活动信息。

F码:在请求活动信息之前,先请求活动的观看权限API,如果需要F码,调用使用F码接口,
    返回结果里如果F码使用成功,再去请求活动信息
    F码是一次性的,使用后跟用户uniqueId绑定,下次该用户访问活动不再需要F码
		 

3. 浏览器在用户未交互前, 是禁止声音自动播放的,SDK内是默认非自动播放的,那么想自动播放怎么办?

/*
因为部分浏览器在用户未交互前,禁止声音自动播放,或者调用API播放。
Chrome 会报错 play() failed because the user didn't interact with the document first.
其他浏览器报错各不同
                     
建议的解决方案:

1. 在播放器组件的onReady回调里,默认设置静音,然后调用API播放。
   同时展示出一个解除静音的按钮,让用户主动点击取消静音。

2. 监听用户的行为,如果用户在这次访问里已经有过交互了,是可以直接播放的。否则是不可以播放的。
   监听用户行为要从访问网址开始就做全局维护,这里时机是不对的,只是示例

    // 监听页面的点击事件,一旦点过了就能可以直接调用API播放
    onUserInteractiveEvent = () => {
        function setCanPlay() {
              // 设置可以调用API直接播放
              document.querySelector("video").play();
              document.removeEventListener('click', setCanPlay);
              document.removeEventListener('touchend', setCanPlay);
        }
        document.addEventListener('click', setCanPlay);
        document.addEventListener('touchend', setCanPlay);
    }

4. 播放器常见错误

这是因为播放源为空,可以定位播放地址是不是为空。
例如未开播的时候,播放源是空的,可参考demo,隐藏错误信息,展现自定义的页面

这是因为播放源里没有数据流。
一般情况下是在刚开始推流后,马上访问播放源造成的。
可以参考demo的延迟访问,延迟时间按照demo书写。