阿里云首页 移动开发平台 mPaaS

主调接口

本文介绍的是音视频通话 API 在接入 Web 中涉及的主调接口。

1. Connect

建立连接。建立连接时会回调 OnGetSign(bizName,subBiz,uid) 来获取签名。

  • 参数

请求参数

类型

描述

config_param

{}

config_param 是一个结构体, 里面包含如下字段:

  • uid:int 类型,必填,用户唯一标识, 由客户端透传而来。

  • room_server_url:String 类型,必填,房间服务器地址。

  • biz_name:String 类型,必填,业务标识。

  • sub_biz:String 类型,必填,业务标识。

  • 回调接口异步返回

    • OnConnectOK()

    • OnConnectFailed(err_code, err_msg)

2. Disconnect

断开连接。调用 Disconnect() 接口,如果正处于通话阶段,会触发关闭发布和订阅的流,并离开房间。即:关闭房间所有流 > 离开房间 > 断开信令连接

  • 参数:无。

  • 回调接口异步返回OnConnectClose()

3. InitRoomConfig

初始化房间。

  • 参数

    请求参数

    类型

    描述

    config_param

    {}

    auto_publish_subscribe:int 类型,必填,发布订阅模式。  1 表示自动订阅。  2 表示自动发布。  3 表示自动订阅 + 自动发布。  4 表示均不自动,由业务自己操作。  5 表示自动订阅 + 当房间中有其他人时自动发布 engine:int 类型,非必填,引擎类型,0:ALIPAY,1: ALIYUN, 2:P2P,默认为 0。 third_id:String 类型,业务关联 ID,默认为空。 need_volume_analyser:boolean 类型,默认为 false,是否需要实时音量值。 transport_:String 类型,传输方式,可选为 all 或 relay,默认为 all。 defaultTurnServer:String 类型,自定义中转服务器。 liveUrl:String 类型,非必填(直播模式必填),直播地址。 publish_type:int 类型,非必填(直播模式必填)。   2 表示 RTC 模式。   3 表示直播模式。 defaultRecord:boolean 类型,非必填,服务端是否默认录制,默认为 false。 recordStrongDepend:boolean 类型,是否强依赖录制,默认为 true。若为 true,则如果录制没启动成功,音视频通话也不能成功。 record_third_id:String 类型,录制三方 ID,用于业务方区分调用批次,在启动成功或失败的回调中返回,非必传。 recordParam:Json 类型,录制参数,非必填。具体参数⻅附录 recordParam。 filePath:String 类型,非必填,服务端录制路径(若指定 filePath,则需指定 defaultRecord 为 true) enableDataChannel:boolean 类型,非必填,是否使用 datachannel,必须在 engine=2 下才可使用,默认为 false 若 auto_publish_subscribe=1,需要以下参数: initSubscribe:Array 类型,订阅参数。 subscribe_video_id:必填,订阅视频控制标签 ID,用于展示视频流。 subscribe_audio_id:必填,用于展示订阅音频流。 feedId_id:必填,label 标签,用于展示 feedId。 subscribe_streamId_id:必填,label 标签,用于展示 streamId。 例如: initSubscribe = [{subscribe_video_id: “video1”,subscribe_audio_id: “audio1”,subscribe_streamId_id: “streamId”,feedId_id: “feedId”},{},{}]; 若 auto_publish_subscribe=2,需要以下参数: media_type:int 类型,必填,音视频类型。   1 表示音视频   2 表示纯音频   3 表示纯视频 publish_bitrate:int 类型,选填,发布最大码率,默认为 600 Kbps。 publish_device:int 类型,必填,发布类型。   1 表示摄像头   2 表示共享桌面   3 表示发布文件(图片和视频)   4 表示发布自定义页面区域   5 表示发布自定义推流 当 publish_device=1 时: videoSource:String 类型,可选,摄像头的 deviceId,用于发布指定摄像头。 audioSource:String 类型,可选,麦克风的 deviceId,用于发布指定麦克风。 aspectRatioStrongDepend:boolean 类型,默认为 false,是否强制指定横纵比。 aspectRatio:String 类型,可选(当 aspectRatioStrongDepend=true 时必填)。   1 表示 4:3   2 表示 16:9 video_profile_type:int 类型,可选,本地视频清晰度档位。   1 表示 720p, 1280x720, 16:9   2 表示 VGA, 640x480, 4:3   3 表示 360p, 640x360, 16:9   4 表示 720p(竖), 720x1280, 9:16   5 表示 360p(竖), 360x640, 9:16   6 表示 1080p, 1920x1080, 16:9   7 表示 1080p(竖), 1080x1920, 9:16   8 表示 90p(竖), 90x160, 9:16   9 表示 540p, 960x540, 16:9   10 表示 540p(竖), 540x960, 9:16 initPublish:Array 类型,必填,发布参数。 publish_video_id:根据 media_type 选填,发布视频控制标签,用于展示视频流。 publish_streamId_id:必填,label 标签,用于展示 streamId。 publish_tag:必填,业务自定义。 initPublish = [    {publish_video_id: “publish_video1”, publish_streamId_id: “publish_streamId1”, publish_tag: “tag1”},    {publish_video_id: “publish_video2”, publish_streamId_id: “publish_streamId2”, publish_tag: “tag2”},    {publish_video_id: “publish_video3”, publish_streamId_id: “publish_streamId3”, publish_tag: “tag3”}]; 若 auto_publish_subscribe=3 或 5,需要以下参数: media_type:int 类型,必填,音视频类型。   1 表示音视频   2 表示纯音频   3 表示纯视频 publish_bitrate:int 类型,选填,发布最大码率,默认为 600 Kbps。 publish_device:int 类型,必填,发布类型。   1 表示摄像头   2 表示共享桌面   3 表示发布文件(图片和视频)   4 表示发布自定义页面区域   5 表示发布自定义推流 video_profile_type:int 类型,可选,本地视频清晰度档位。   1 表示 720p, 1280x720, 16:9   2 表示 VGA, 640x480, 4:3   3 表示 360p, 640x360, 16:9   4 表示 720p(竖), 720x1280, 9:16   5 表示 360p(竖), 360x640, 9:16   6 表示 1080p, 1920x1080, 16:9   7 表示 1080p(竖), 1080x1920, 9:16   8 表示 90p(竖), 90x160, 9:16   9 表示 540p, 960x540, 16:9   10 表示 540p(竖), 540x960, 9:16 initPublish:Array 类型,必填,发布参数。   publish_video_id:根据 media_type 选填,发布视频控制标签,用于展示视频流。   publish_streamId_id:必填,label 标签,用于展示 streamId。   publish_tag:必填,业务自定义。 例如: initPublish = [           {publish_video_id: “publish_video1”, publish_streamId_id: “publish_streamId1”, publish_tag: “tag1”},           {publish_video_id: “publish_video2”, publish_streamId_id: “publish_streamId2”, publish_tag: “tag2”},           {publish_video_id: “publish_video3”, publish_streamId_id: “publish_streamId3”, publish_tag: “tag3”}       ]; initSubscribe:Array 类型,订阅参数。   subscribe_video_id:必填,订阅视频控制标签,用于展示视频流。   subscribe_audio_id:必填,用于展示订阅音频流   feedId_id:必填,label 标签,用于展示 feedId。   subscribe_streamId_id:必填,label 标签,用于展示 streamId。 例如: initSubscribe = [    {      subscribe_video_id: “video1”,      subscribe_audio_id: “audio1”,      subscribe_streamId_id: “subscribe_streamId1”,      feedId_id: “feedId1”    },{},{}];

    bizName

    String

    业务名。

    subBiz

    String

    子业务。

    uid

    String

    用户 ID。

  • 回调接口异步返回

    • OnInitRoomConfigOK()

    • OnInitRoomConfigFail(err_code, err_msg)

4. CreateRoom

创建房间。

  • 参数:无。

  • 回调接口异步返回

    • OnCreateRoomSucc(room_id, rtoken)

    • OnCreateRoomFailed()

5. JoinRoom

加入房间。

  • 参数

请求参数

类型

描述

room_id

String

房间 ID。

rtoken

String

房间 Token,相当于房间密码。

  • 回调接口异步返回

    • OnJoinRoomSucc()

    • OnJoinRoomFailed(err_code, err_msg)

6. Invite

邀请加入房间。

  • 参数

请求参数

类型

描述

invitee

String

被邀请方 UID。

channelType

int

推送渠道0 表示 WEB1 表示 ALIPAY。

extra

String

业务透传字段。

  • 回调接口异步返回

    • OnInviteOK()

    • OnInviteFail(err_code, err_msg)

7. ReplyInvite

回复邀请加入房间。

  • 参数

请求参数

类型

描述

roomId

String

房间 ID。

inviter

String

邀请方 UID。

reply

int

0 表示接听;2 表示拒绝。

  • 回调接口异步返回

    • OnReplyInviteOK()

    • OnReplyInviteFail(err_code, err_msg)

8. LeaveRoom

退出房间。

  • 参数:无。

  • 回调接口异步返回OnLeaveRoom()

9. Publish

发布媒体流。

  • 参数

请求参数

类型

描述

config_param

{}

media_type:int 类型,必填,音视频类型。1 表示音视频。2 表示纯音频。3 表示纯视频。publish_bitrate:int 类型,选填,发布最大码率,默认为 600 Kbps。publish_device:int 类型,必填,发布类型。1 表示摄像头;2 表示共享桌面。3 表示发布文件(图片和视频)4 表示发布自定义页面区域。5 表示发布自定义推流。video_profile_type:int 类型,可选,本地视频清晰度档位。1 表示 720p, 1280x720, 16:92 表示 VGA, 640x480, 4:3 3 表示 360p, 640x360, 16:94 表示 720p(竖), 720x1280, 9:16 5 表示 360p(竖), 360x640, 9:16 6 表示 1080p, 1920x1080, 16:9 7 表示 1080p(竖), 1080x1920, 9:16 8 表示 90p(竖), 90x160, 9:169 表示 540p, 960x540, 16:910 表示 540p(竖), 540x960, 9:16publish_video_id:String 类型,根据 media_type 选填,发布视频控制标签,用于展示视频流。publish_streamId_id:String 类型,必填,label 标签,用于展示 streamId。publish_tag:String 类型,业务指定 tag。need_volume_analyser:boolean 类型,默认为 false,是否需要实时音量值。file:file,可选(publish_device=3 时必填),图片或视频文件。例如:let file = document.getElementById('file').files[0];part_of_screen_id:String 类型,可选(publish_device=4 时必填),需要共享区域的 div 的 id 值。例如:<div id="part_of_screen_id"></div>stream:String 类型,可选(publish_device=5 时必填),需要共享区域的 div 的 id 值。例如:<div id="part_of_screen_id"></div>publish_device=1 时:videoSource:String 类型,可选,摄像头的 deviceId,用于发布指定摄像头。audioSource:String 类型,可选,麦克风的 deviceId, 用于发布指定麦克风。aspectRatioStrongDepend:boolean 类型,可选,默认为 false,是否强制指定横纵比。aspectRatio:String 类型,可选(aspectRatioStrongDepend=true 时必填):1 表示 4:32 表示 16:9publish_bitrate:int 类型,选填,发布最大码率,默认 600 Kbps。

  • 调接口异步返回

    • OnPublishSucc(sid)

    • OnPublishFailed(sid,err_code, err_msg)

10. Subscribe

订阅某路媒体流。

  • 参数

请求参数

类型

描述

config_param

{}

subscribe_video_id:String 类型,必填,订阅视频控制标签, 用于展示视频流。subscribe_audio_id:String 类型,必填,用于展示订阅音频流。subscribe_streamId_id:String 类型,必填,label 标签,用于展示 streamId。feedId_id:String 类型,必填,label 标签,用于展示 feedId。feedId:订阅的流 id。need_volume_analyser:boolean 类型,默认为 false,是否需要实时音量值。

  • 回调接口异步返回

    • OnSubscribeSucc(feedId,sid)

    • OnSubscribeFailed(sid,err_code, err_msg)

11. SetLocalAudioEnable

开启或关闭本地麦克风。

  • 参数

请求参数

类型

描述

enabled

int

1 表示开0 表示关。

sid

int

流 ID。

12. SetLocalVideoEnable

开启或关闭本地摄像头。

  • 参数

请求参数

类型

描述

enabled

int

1 表示开启;0 表示关闭。

sid

int

流 ID。

13. SetLocalCodecType

设置视频编码格式。

  • 参数

请求参数

类型

描述

type

String

H264VP8

14. SetLocalProtoType

设置音视频传输协议。

  • 参数

请求参数

类型

描述

type

String

allTCPUDP

15. TakePicture

截图。

  • 参数

请求参数

类型

描述

type

int

0 表示截取本地端;1 表示截取远端图像。

width

int

图像宽度。

height

int

图像高度。

sid

int

流 ID。

picture_type

int

输出图片格式:1 表示 PNG;2 表示 JPEG 或 JPG。

17. StopRecord

停止浏览器录制,与 StartBrowserRecord 接口配合使用。离开房间之前需要调用此接口,否则无法获取 blob 数据。

  • 参数

请求参数

类型

描述

clientRecordId

String

浏览器录制 ID。

  • 回调接口异步返回

    • OnClientStopRecordSuccess(videoURL, clientRecordBlob, clientRecordId)

    • OnClientStopRecordFailed(clientRecordId, code, msg)

18. PauseRecord

暂停浏览器录制,与 ResumeRecord 接口配合使用。

  • 参数

请求参数

类型

描述

clientRecordId

String

浏览器录制 ID。

  • 回调接口异步返回

    • OnClientPauseRecordSuccess(clientRecordId)

    • OnClientPauseRecordFailed(clientRecordId, code, msg)

19. ResumeRecord

继续浏览器录制,与 PauseRecord 接口配合使用。

  • 参数

请求参数

类型

描述

clientRecordId

String

浏览器录制 ID。

  • 回调接口异步返回

    • OnClientResumeRecordSuccess(clientRecordId)

    • OnClientResumeRecordFailed(clientRecordId, code, msg)

20. DownloadRecord

下载浏览器录制音视频,需要在离开房间之前下载。

  • 参数

请求参数

类型

描述

clientRecordId

String

浏览器录制 ID。

fileName

String

指定文件名。

  • 回调接口异步返回

    • OnClientDownloadRecordSuccess(clientRecordId)

    • OnClientDownloadRecordFailed(clientRecordId, code, msg)

21. StartRemoteRecord

开始服务端录制(远端录制,即在媒体服务器上进⾏录制),与 StopRemoteRecord 接口配合使用。

  • 参数

请求参数

类型

描述

file_path

String

选填,服务端录制路径。

record_param

Json

录制参数,非必填。具体参数见附录 recordParam。

record_third_id

String

录制三方 ID,用于业务方区分调用批次,在启动成功或失败的回调中返回,非必传。

  • 回调接口异步返回

    • OnInitRemoteRecordSucc(record_id, record_third_id):服务端录制初始化成功。

    • OnStartRemoteRecordSucc(record_id, record_third_id):服务端录制启动成功,晚于 OnInitRemoteRecordSucc

    • OnStartRemoteRecordFailed(record_id, err_code, err_msg, record_third_id):服务端录制启动失败。

22. StopRemoteRecord

结束服务端录制,与 StartRemoteRecord 接口配合使用。

  • 参数

请求参数

类型

描述

record_id

String

服务端录制 ID。

  • 回调接口异步返回

    • OnStopRecordSucc(recordId)

    • OnStopRecordFailed(recordId,err_code, err_msg)

23. GetRecordInfo

获取服务端录制结果。调用此接口会回调 OnGetSign(bizName,subBiz,record_id) 来获取签名,同时 OnGetSign 中的 uid 会替换为此处的 record_id

  • 参数

请求参数

类型

描述

record_id

String

服务端录制 ID。

room_id

String

房间号。

media_type

int

文件内容类型:0 表示音视频(默认);1 表示纯音频;2 表示纯视频。

  • 回调接口异步返回

    • OnRecordInfoSucc(recordInfo)

    • OnRecordInfoFailed(recordId,err_code, err_msg)

24. UnPublish

取消发布媒体流。

  • 参数

请求参数

类型

描述

sid

int

流 ID。

  • 回调接口异步返回

    • OnUnPublishSucc(sid)

25. UnSubscribe

取消订阅某路媒体流。

  • 参数

请求参数

类型

描述

sid

int

流 ID。

  • 回调接口异步返回

    • OnUnSubscribeSucc(sid)

26. SendTextMsg

发送文本消息。

  • 参数

请求参数

类型

描述

msg

String

消息文本。

participants

Array

发送目标 ID(为空则发给与会其他所有人)。

28. SetPublishWeakBitrateLimit

设置发布弱网码率告警下限,在 初始化(InitRoomConfig) 时调用此接口。

  • 参数

请求参数

类型

描述

weak_bitrate

int

发布弱网码率告警下限:音频 + 视频:默认为 200;单独音频:默认为 20-25。

29. SetSubscribeWeakBitrateLimit

设置订阅弱网码率告警下限,在 初始化(InitRoomConfig) 时调用此接口。

  • 参数

请求参数

类型

描述

weak_bitrate

int

订阅弱网码率告警下限弱网码率告警下限音频+视频:默认为 200单独音频:默认为 20-25

32. StartVod(vodParams)

开始语音点播。

  • 参数

请求参数

类型

描述

vodParams

Json

vodFile:点播文件名。vodStartTimeout:开启点播超时时间(单位为秒,默认为 5s)。

  • 回调接口异步返回

    • OnStartVodSuccess(file, vod_id)

    • OnStartVodFail(file, vod_id, err_code, err_msg)

33. StopVod(vod_id)

停止语音点播。

  • 参数

请求参数

类型

描述

vod_id

String

点播 ID。

  • 回调接口异步返回

    • OnStopVodSuccess(vod_id)

    • OnStopVodFail(vod_id, err_code, err_msg)

34. DownloadLog()

日志上报,调用此接口可下载控制台日志到 PC 本机(默认最长 10000 行日志)。

  • 参数:无。

37. ChangeMediaStream()

自定义切流。

  • 参数

请求参数

类型

描述

config

Json

publish_device:int 类型,必填,发布类型。1 表示摄像头;2 表示共享桌面。3 表示发布文件(图片和视频)4 表示发布自定义页面区域。5 表示发布自定义推流。publish_bitrate:int 类型,选填,发布最大码率,默认为 600 Kbpsmedia_type:必填,音视频类型。sid:必填,已发布流 ID。当 publish_device=1 时,以下参数必填: video_profile_type:分辨率。 videoSource:String 类型,摄像头的 deviceId,用于切换指定摄像头。 audioSource:String 类型,麦克风的 deviceId,用于切换指定麦克风。 aspectRatioStrongDepend:boolean 类型,默认为 false,是否强制指定横纵比。 aspectRatio:String 类型,aspectRatioStrongDepend=true 时必填 1 表示 4:3 2 表示 16:9当 publish_device=3 时,以下参数必填: file:图片或视频文件。当 publish_device=3 时,以下参数必填: part_of_screen_id:需要发布的自定义区域。当 publish_device=5 时,以下参数必填: stream:需要发布的自定义推流。

  • 回调接口异步返回

    • OnChangeMediaStreamSuccess(sid)

    • OnChangeMediaStreamFailed(sid,code, msg)

38. ChangeProfile()

动态切换(分辨率、摄像头麦克风、横纵比)。

  • 参数

请求参数

类型

描述

config

Json

sid:必填,已发布流 ID。video_profile_type:选填,分辨率。local_video_width:选填,宽度。local_video_height:选填,高度。videoSource:String 类型,可选,摄像头的 deviceId,用于切换指定摄像头。audioSource:String 类型,可选,麦克风的 deviceId,用于切换指定麦克风。aspectRatioStrongDepend:boolean 类型,默认为 false,是否强制指定横纵比。aspectRatio:String 类型,可选(aspectRatioStrongDependtrue 时必填)。 1 表示 4:3 2 表示 16:9

  • 回调接口异步返回

    • OnChangeMediaStreamSuccess(sid)

    • OnChangeMediaStreamFailed(sid,code, msg)

39. GetDevices()

获取设备信息。

  • 参数:无。

  • 回调接口异步返回

    • OnGetDevicesSuccess(devicesInfo)

    • OnGetDevicesFailed(code, msg)

40. StartBrowserRecord

开启浏览器录制(近端录制),指基于浏览器的 native 录制能力进行录制。目前只支持录制两条流,不支持录制点播机器人。

  • 参数

请求参数

类型

描述

clientRecordId

String

浏览器录制 ID。

stream_list

Array

流 ID(sid)。

record_config

Json

media_type:int 类型,录制选项。 1 表示音视频 2 表示纯音频 3 表示纯视频time_slice:int 类型,录制 blob 通知间隔时间,默认为 30,单位为分钟。video_profile:Json 类型。 videoCodec:String 类型,视频编码格式,H264/VP8/VP9。 frameRate:int 类型,帧率。record_resolution:String,录制完成的整体视频尺寸大小 1920x1080 1280x720 640x360overlaps:Array 类型,视频水印:

  • 时间戳水印

    • enable:是否增加水印。

    • type: 1 水印类型。

    • id:水印 ID。

    • xPosition:水印 X 轴起始位置 。

    • yPosition:水印 Y 轴起始位置。

  • 文字水印

    • enable:是否增加水印。

    • type: 2 水印类型。

    • id:水印 ID。

    • text:水印文字。

    • fontSize:水印文字大小。

    • xPosition:水印 X 轴起始位置 。

    • yPosition:水印 Y 轴起始位置。

  • 图片水印

    • enable:是否增加水印。

    • type: 3 水印类型。

    • id:水印 ID。

    • img:需要添加的水印图片元素 new Image()。

    • xPosition:水印 X 轴起始位置 。

    • yPosition:水印 Y 轴起始位置。

  • 回调接口异步返回

    • OnClientStartRecordSuccess(clientRecordId)

    • OnClientStartRecordFailed(clientRecordId, code, msg)

41. PauseRemoteRecord

暂停服务端录制,与 ResumeRemoteRecord 接口配合使用。

  • 参数

请求参数

类型

描述

record_id

String

服务端录制 ID。

  • 回调接口异步返回

    • OnPauseRemoteRecordSucc(record_id)

    • OnPauseRemoteRecordFailed(record_id, err_code, err_msg)

42. ResumeRemoteRecord

恢复服务端录制,与 PauseRemoteRecord 接口配合使用。

  • 参数

请求参数

类型

描述

record_id

String

服务端录制 ID。

  • 回调接口异步返回

    • OnResumeRemoteRecordSucc(record_id)

    • OnResumeRemoteRecordFailed(record_id, err_code, err_msg)

43. ChangeRemoteRecordWatermark

变更服务端录制⽔印。

  • 参数

请求参数

类型

描述

record_id

String

服务端录制 ID。

overlaps

Jsonarray

⻅附录 recordParam 中的 overlaps

  • 回调接口异步返回

    • OnChangeRemoteRecordWatermarkSucc(record_id)

    • OnChangeRemoteRecordWatermarkFailed(record_id, err_code, err_msg)

44. PauseFile

暂停共享音频或视频播放。

  • 参数

请求参数

类型

描述

sid

int

流 ID。

45. PlayFile

恢复播放共享音频或视频播放。

  • 参数

请求参数

类型

描述

sid

int

流 ID。

46. ChangeStreamSize

动态修改视频尺寸。

  • 参数

请求参数

类型

描述

sid

int

流 ID。

video_profile_type

String

video_profile_type:int 类型,可选,本地视频清晰度档位。1 表示 720p, 1280x720, 16:92 表示 VGA, 640x480, 4:3 3 表示 360p, 640x360, 16:94 表示 720p(竖), 720x1280, 9:16 5 表示 360p(竖), 360x640, 9:16 6 表示 1080p, 1920x1080, 16:9 7 表示 1080p(竖), 1080x1920, 9:16 8 表示 90p(竖), 90x160, 9:169 表示 540p, 960x540, 16:910 表示 540p(竖), 540x960, 9:16

  • 回调接口异步返回

    • OnChangeStreamSizeSuccess(sid, localVideoWidth, localVideoHeight)

    • OnChangeStreamSizeFail(sid, localVideoWidth, localVideoHeight, errCode, errMsg)

47. 通过 DataChannel 发送信息 SendData

  • 参数

请求参数

类型

描述

data

String(目前仅支持文本)

发送文本信息。