直播事件通知

1 创建GLOBAL_PUBLIC直播流

action:AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC

{"action":"AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC","userId":"xxx","roomId":"xxx","channelId":"xxx","conCurrentNumber":"200","extra" : "xxx"}
//返回 {"status":"x"}

创建公开的直播间,上传者和连麦者需要登录,观众不需要登录或其他权限即可观看直播。
userId: 申请创建直播的用户ID。
roomId: 此直播间对应的聊天室ID,如果直播间无聊天功能,则没有roomId参数。
channelId: 该直播间ID号。
conCurrentNumber: 此房间的人数上限。
extra: (可选)客户端SDK发过来的自定义数据。

2 创建LOGIN_PUBLIC直播流

action:AEC_LIVE_CREATE_CHANNEL_LOGIN_PUBLIC

{"action":"AEC_LIVE_CREATE_CHANNEL_LOGIN_PUBLIC","userId":"xxx","roomId":"xxx","channelId":"xxx","conCurrentNumber":"200","extra":"xxx"}
//返回 {"status":"x"}

创建只对登录用户可见的直播间,上传者、连麦者和观众都需要登录才可以参与或观看直播。
userId: 申请创建直播的用户ID。
roomId: 此直播间对应的聊天室ID,如果直播间无聊天功能,则没有roomId参数。
channelId: 该直播间ID号。
conCurrentNumber: 此房间的人数上限。
extra: (可选)客户端SDK发过来的自定义数据。

3 创建GROUP_PUBLIC直播流

action:AEC_LIVE_CREATE_CHANNEL_GROUP_PUBLIC

{"action":"AEC_LIVE_CREATE_CHANNEL_GROUP_PUBLIC","userId":"xxx","groupId":"xxx","channelId":"xxx","extra":"xxx"}
//返回 {"status":"x"}

创建仅在群内能观看的直播间,上传者、连麦者和观众都需要在这个群内才可参与或观看直播。
userId: 申请创建直播间的用户ID。
groupId: 直播间对应的群ID。
channelId: 该直播间ID号。
extra: (可选)客户端SDK发过来的自定义数据。

4 申请上传

action:AEC_LIVE_APPLY_UPLOAD_CHANNEL

{"action":"AEC_LIVE_APPLY_UPLOAD_CHANNEL","userId":"xxx","channelId":"xxx"}
//返回 {"status":"x","data":{"conCurrentNumber":"xxx","groupId(可选)":"xxxx"}}

申请上传音视频流,可用于视频会议、互动直播、连麦等场景。
userId: 申请上传的用户ID。
channelId: 需要上传音视频的直播间ID号。

返回的data字段的json中,conCurrentNumber表示该直播间的人数上限,如果该channelId类型为群直播(AEC_LIVE_CREATE_CHANNEL_GROUP_PUBLIC),还需要返回对应的groupId。

5 设置上传者

action:AEC_LIVE_SET_CHANNEL_UPLOADER

{"action":"AEC_LIVE_SET_CHANNEL_UPLOADER","userId":"xxx","channelId":"xxx"}
//返回 {"status":"x"}

房主(主播)申请设置某用户的上传权限,如果是公开(AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC)类型的房间,则用户只需要登录就能申请上传,不需要房主指定权限,如果是其他类型的房间,则需要房主主动指定用户为上传者,然后上传者才能申请上传。
userId: 需要设置上传权限的用户ID。
channelId: 对应的直播间ID。

6 取消上传权限

action:AEC_LIVE_UNSET_CHANNEL_UPLOADER

{"action":"AEC_LIVE_UNSET_CHANNEL_UPLOADER","userId":"xxx","channelId":"xxx"}
//返回 {"status":"x"}

房主(主播)申请取消某用户的上传权限。
userId: 需要取消上传权限的用户ID。
channelId: 对应的直播间ID。

7 上传者断开连接(离开)

action:AEC_LIVE_UPLOADER_DISCONNECT

{"action":"AEC_LIVE_UPLOADER_DISCONNECT","userId":"xxx","channelId":"xxx"}
//返回 {"status":"x"}

userId: 断开连接的用户ID。
channelId: 对应的直播间ID。

8 上传者正在上传中

action:AEC_LIVE_UPLOADER_UPLOADING

{"action" : "AEC_LIVE_UPLOADER_UPLOADING","userId" : "xxx","channelId" : "xxx"}
//返回 {"status":"x"}

上传者正在上传,每分钟会调用一次此事件,可根据业务逻辑决定返回值,如用户余额不足,可通过此事件终止用户继续直播。
userId: 正在上传的用户ID。
channelId: 对应的直播间ID。

9 关闭直播流

action:AEC_LIVE_CLOSE_CHANNEL

{"action":"AEC_LIVE_CLOSE_CHANNEL","userId":"xxx","channelId":"xxx"}
//返回 {"status":"x"}

用户申请关闭直播流。
userId: 关闭直播流的用户ID。
channelId: 对应的直播间ID。

10 删除直播流

action:AEC_LIVE_DELETE_CHANNEL

{"action":"AEC_LIVE_DELETE_CHANNEL","userId":"xxx","channelId":"xxx"}
//返回 {"status":"x"}

用户申请删除直播流。
userId: 删除直播流的用户ID。
channelId: 对应的直播间ID。

11 用户开始观看直播

action:AEC_LIVE_USER_ONLINE

{"action":"AEC_LIVE_USER_ONLINE","userId":"xxx","channelId":"xxx","time":"xxx"}

可以在此事件中检查用户余额。

12 用户观看直播中,每分钟调用一次

action:AEC_LIVE_USER_PLAYING

{"action":"AEC_LIVE_USER_PLAYING","userId":"xxx","channelId":"xxx","time":"xxx","discharge":"xxx"}

此事件每分钟回调一次,通知该用户正在观看直播。可以在此事件中检查用户余额。如果余额不足,可以阻止用户继续观看。

其中discharge表示一分钟内消耗的流量,单位为字节。

13 用户停止观看直播

action:AEC_LIVE_USER_OFFLINE

{"action":"AEC_LIVE_USER_OFFLINE","userId":"xxx","channelId":"xxx","time":"xxx","discharge":"xxx"}