全部产品
视频直播

DEMO接口文档

更新时间:2017-06-29 17:26:02   分享:   

接口文档

首先可以了解连麦的典型业务流程 典型业务流程

可以通过如下格式访问demo appserver的接口http://{host}:{port}/{path}

  • 1、 用户管理

  • 1.1 登录 /login

请求
  1. ```ruby
  2. POST /login
  3. ```
入参
名称 类型 必选
name string Y
password string N
返回
  1. ```json
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": {
  6. "id": "1",
  7. "name": "est"
  8. }
  9. }
  10. }
  11. ```
  • 1.2 直播间观众列表 /im/room/users
请求方式
  1. POST "/im/room/users"
请求参数
参数名 数据类型 必选 说明
roomId int Y 房间ID
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": [
  6. {
  7. "name": "ccv",
  8. "id": "1"
  9. },
  10. {
  11. "name": "ddf",
  12. "id": "2"
  13. }
  14. ]
  15. }
  16. ```
  • 2、 直播管理

  • 2.1 直播列表 live/list

如果回调配置没有设置或设置的不对, 那么live/list接口数据将返回为空
请求方式
  1. ```ruby
  2. GET {baseUrl}/live/list
  3. ```
请求参数
名称 类型 必选 含义
roomId int N 直播间ID
roomId=-1时,将返回全部记录,包含推流状态和连麦可用状态不对的记录
返回
  1. ```json
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": [
  6. {
  7. "uid": "8070355f",
  8. "name": "qqqqqqqq",
  9. "roomId": "230176387716088260",
  10. "rtmpUrl": "rtmp://videocall.push.danqoo.com/DemoApp/230176387716088260?auth_key=1471243317-0-0-69544892580969bfbb3c86112c532d1b",
  11. "playUrl": "http://videocall.play.danqoo.com/DemoApp/230176387716088260.flv",
  12. "status": 1,
  13. "type": 2, #1:观众 2:主播
  14. "isMixReady": true, # true 编码流已经准备好
  15. "isMixed": false, #true 混流成功
  16. "mns":{
  17. "topic":'474c7658805b798814', #直播间topic,用于客户端订阅消息
  18. "topicLocation": "http://125277.mns.cn-hangzhou.aliyuncs.com/topics/229820386403942828",
  19. "roomTag": "474c7658805b798814" #直播间tag, 用于客户端过滤订阅消息
  20. },
  21. "description":"XX的直播"
  22. },
  23. {
  24. "uid": "e6fdb3ab",
  25. "name": "499455",
  26. "roomId": "229820386403942828",
  27. "rtmpUrl": "rtmp://videocall.push.danqoo.com/DemoApp/229820386403942828?auth_key=1471160429-0-0-6df7a7e4326d86a019e2160b9549956a",
  28. "playUrl": "http://videocall.play.danqoo.com/DemoApp/229820386403942828.flv",
  29. "status": 0,
  30. "type": 2, #1:观众 2:主播
  31. "isMixReady": true, # true 编码流已经准备好
  32. "isMixed": false, #true 混流成功
  33. "mns":{
  34. "topic":'474c7658805b798814',
  35. "topicLocation": "http://125277.mns.cn-hangzhou.aliyuncs.com/topics/229820386403942828",
  36. "roomTag": "474c7658805b798814"
  37. },
  38. "description":"XX的直播"
  39. }
  40. ]
  41. }
  42. ```
  • 2.2 创建直播 live/create
请求方式
  1. ```ruby
  2. POST "/live/create"
  3. ```
请求参数
参数名 数据类型 必选 说明
uid string Y 用户ID
desc string N 描述
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": {
  6. "uid": 1,
  7. "name": "你好",
  8. "roomId": "474c7658805b798814",
  9. "rtmpUrl": "rtmp://videocall.push.danqoo.com/DemoApp/474c7658805b798814?auth_key=1475044685-0-0-3bef3969e641856d785dbeeb23f188a9",
  10. "playUrl": "http://videocall.play.danqoo.com/DemoApp/474c7658805b798814_mix.flv",
  11. "m3u8PlayUrl": "http://videocall.play.danqoo.com/DemoApp/474c7658805b798814_mix.m3u8",
  12. "rtmpPlayUrl": "rtmp://videocall.play.danqoo.com/DemoApp/474c7658805b798814_mix",
  13. "status": 1 #0:创建还未推流 1:在推流,2: 直播结束, 10: 连麦时系统创建的直播(主要是观众连麦时)
  14. "type": 2, #1:观众 2:主播
  15. "isMixReady": false,
  16. "isMixed": false,
  17. "mns":{
  18. "topic":'474c7658805b798814',
  19. "topicLocation": "http://125277.mns.cn-hangzhou.aliyuncs.com/topics/229820386403942828",
  20. "roomTag": "474c7658805b798814",
  21. "userRoomTag": "474c7658805b798814_1" #用于客户端过滤订阅消息给主播
  22. },
  23. "description": "test"
  24. }
  25. }
  26. ```
  • 2.3 观看直播 live/play
请求方式
  1. ```ruby
  2. POST "/live/play"
  3. ```
请求参数
参数名 数据类型 必选 说明
roomId int Y 直播间ID
uid string Y 用户ID
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": {
  6. "uid": "2",
  7. "name": "test5",
  8. "roomId": 230178951253721540,
  9. "playUrl": "http://videocall.play.danqoo.com/DemoApp/230178951253721540.flv",
  10. "mns":{
  11. "topic":'474c7658805b798814',
  12. "topicLocation": "http://125277.mns.cn-hangzhou.aliyuncs.com/topics/229820386403942828",
  13. "roomTag": "474c7658805b798814",
  14. "userRoomTag": "474c7658805b798814_2" #当前观众过滤消息的tag
  15. }
  16. }
  17. }
  18. ```
  • 2.4 主播退出直播 live/leave
请求方式
  1. ```ruby
  2. POST "/live/leave"
  3. ```
请求参数
参数名 数据类型 必选 说明
roomId int Y 直播间ID
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功"
  5. }
  6. }
  7. ```
  • 2.5 直播评论 live/comment
请求方式
  1. ```ruby
  2. POST "/live/comment"
  3. ```
请求参数
参数名 数据类型 必选 说明
uid string Y 用户ID
roomId int Y 直播间ID
comment string Y 评论内容
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功"
  5. }
  6. ```
  • 2.6 直播点赞 live/live
请求方式
  1. ```ruby
  2. POST "/live/like"
  3. ```

请求参数

参数名 数据类型 必选 说明
uid string Y 用户ID
roomId int Y 直播间ID
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功"
  5. }
  6. ```
  • 2.7 结束观看直播 live/audience/leave
请求方式
  1. ```ruby
  2. POST "/live/audience/leave"
  3. ```
请求参数
参数名 数据类型 必选 说明
roomId int Y 直播间ID
uid int Y 用户ID
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功"
  5. }
  6. }
  7. ```
  • 3、 连麦管理

  • 3.1 邀请连麦

请求方式
  1. ```ruby
  2. POST "/videocall/invite"
  3. ```
请求参数
参数名 数据类型 必选 说明
inviterUid string Y 邀请连麦ID
inviteeUids string Y 被邀请连麦ID
liveRoomId string Y 直播间ID
inviterType int Y 邀请是否为观众 #1是观众 2 主播
注意事项

inviteeUids 被邀请连麦ID 用‘|’分割 例如: ‘1|2|3’ or ‘2’

返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功"
  5. }
  6. ```
  • 3.2 连麦反馈
请求方式
  1. ```ruby
  2. POST "/videocall/feedback"
  3. ```
请求参数
参数名 数据类型 必选 说明
inviterUid string Y 邀请连麦ID
inviteeUid string Y 被邀请连麦ID
status int Y 是否同意状态 #1同意 2 不同意
inviterType int Y 邀请是否为观众 #1是观众 2 主播
inviteeType int Y 被邀请是否为观众 #1是观众 2 主播
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": {
  6. "mainPlayUrl": "http://videocall.play.danqoo.com/DemoApp/2bf74bb6cc_mix.flv", //主流播放地址
  7. "playUrls": [{
  8. uid:"2",
  9. url:"http://videocall.play.danqoo.com/DemoApp/518f1a4591.flv?ali_flv_retain=0"
  10. }],//观众的副流短延时地址
  11. "rtmpUrl": "rtmp://videocall.push.danqoo.com/DemoApp/518f1a4591?auth_key=1483592948-0-0-5a01ee137789306a34a93c5bd7f55f3c" //副流推流地址
  12. }
  13. }
  14. ```
  • 3.3 连麦关闭
请求方式
  1. ```ruby
  2. POST "/videocall/close"
  3. ```
请求参数
参数名 数据类型 必选 说明
roomId int Y 关闭连麦房间ID
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功"
  5. }
  6. ```
  • 3.4 观众离开连麦
请求方式
  1. POST "/videocall/leave"
请求参数
参数名 数据类型 必选 说明
roomId int Y 连麦房间ID
uid int Y 离开用户ID
返回结果 Json
  1. {
  2. "code": 200,
  3. "message": "成功"
  4. }
  • 4、 阿里MNS管理

  • 4.1 获取web socket链接信息 mns/topic/websocket/info

请求方式
  1. ```ruby
  2. POST "/mns/topic/websocket/info"
  3. ```
请求参数
参数名 数据类型 必选 说明
topic string Y 主题
subscriptionName string N 订阅名字 默认和topic名字一样
返回结果 Json
  1. ```python
  2. {
  3. "code": 200,
  4. "message": "成功",
  5. "data": {
  6. "authentication": "Fa91Q+YDqsa7CQOMHyYXE7OFw=",
  7. "topicWebsocketServerAddress": "ws://125277.mns-websocket.cn-shanghai.aliyuncs.com/mns",
  8. "accountId": "12277",
  9. "accessId": "Q1dfW3pJSOJf6"
  10. }
  11. }
  12. ```
  • 5、 阿里通知

  • 5.1 阿里通知

原始流推流/断流通知回调地址,设置URL
  1. ```ruby
  2. "/ali/stream/notify"
  3. ```
混流回调地址
  1. 用于通知使用方是否可以以某路流为主流调用调用混流, 用户提用回调的URL
  2. ```ruby
  3. "/ali/mix/notify"
  4. ```
  • 6、 推送消息

  • 6.1 推送消息

邀请连麦推送
  1. 权重:4
  2. ```ruby
  3. {
  4. "data": {
  5. inviterUid: "12",
  6. inviterName:"名字" ,
  7. inviterType:1 #邀请是否为观众 #1是观众 2 主播
  8. },
  9. type:1,
  10. time: 1367997715932
  11. }
  12. ```
同意连麦推送
  1. 权重:4
  2. ```ruby
  3. {
  4. "data":{
  5. inviteeUid: "名字",
  6. inviteeName: "名字",
  7. inviteeRoomId: "12",
  8. inviterRoomId: "13",
  9. mainPlayUrl: "主流播放地址",
  10. playUrls: [{uid:"uid",url:"副麦短延时播放地址"}],
  11. rtmpUrl: "副麦推送地址"
  12. },
  13. type:2,
  14. time: 1367997715932
  15. }
  16. ```
不同意连麦推送
  1. 权重:4
  2. ```ruby
  3. {
  4. data:{
  5. inviteeUid: 12,
  6. inviteeName:"name"
  7. status: 2 #1 同意 2 拒绝
  8. },
  9. type:3,
  10. time: 1367997715932
  11. }
  12. ```
主播结束连麦推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. roomId: 12,
  6. uid: 12,
  7. name: "测试"
  8. },
  9. type:4,
  10. time: 1367997715932
  11. }
  12. ```
连麦混流成功推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. mainRoomId: 12,
  6. userName: 'userName',
  7. mainMixPlayUrls: [
  8. 'http://videocall.play.danqoo.com/DemoApp/243211683177169332_mix360',
  9. 'http://videocall.play.danqoo.com/DemoApp/243211683177169332_mix480'
  10. ]
  11. },
  12. type:5,
  13. time: 1367997715932
  14. }
  15. ```
评论推送
  1. 权重:8
  2. ```ruby
  3. {
  4. data:{
  5. uid: 12,
  6. name: “name”,
  7. comment: “comment”
  8. },
  9. type:6,
  10. time: 1367997715932
  11. }
  12. ```
点赞推送
  1. 权重:9
  2. ```ruby
  3. {
  4. data:{
  5. uid: 12,
  6. name: “name”,
  7. },
  8. type:7,
  9. time: 1367997715932
  10. }
  11. ```
直播结束推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. roomId: 12
  6. },
  7. type:8,
  8. time: 1367997715932
  9. }
  10. ```
开始推流推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. uid: 1,
  6. name: “2222”
  7. roomId: 12
  8. },
  9. type:9,
  10. time: 1367997715932
  11. }
  12. ```
中断推流推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. uid: 1,
  6. name: “2222”
  7. roomId: 12
  8. },
  9. type:10,
  10. time: 1367997715932
  11. }
  12. ```
混流失败推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. mainRoomId: 12,
  6. userName: 'inviterName',
  7. message: "失败"
  8. },
  9. type:14,
  10. time: 1367997715932
  11. }
  12. ```
连麦混流结束成功推送
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. roomId: 12,
  6. uid: 40,
  7. name: "放入肉"
  8. },
  9. type:15,
  10. time: 1367997715932
  11. }
  12. ```
连麦过程中的启动结束混流命令状态推送

code说明及处理请参考:混流回调通知

  1. 调用阿里混流接口或结束混流接口中间的状态消息推送的
  2. 权重:5
  3. ```ruby
  4. {
  5. data:{
  6. mainMixRoomId, // 主流房间ID
  7. mixRoomId, //副流房间ID
  8. mixType, //混流类型( stream 或者 channel)
  9. mixTemplate, //混流模板
  10. event, //EventMix EventMixStop 开始混流,结束混流
  11. message, //错误描述 为空时表示成功,
  12. code:200 //说明请参考 阿里视频云连麦对接文档.pdf
  13. },
  14. type:16,
  15. time: 1367997715932
  16. }
  17. ```
混流可用通知
  1. 权重:5
  2. ```ruby
  3. {
  4. data:{
  5. roomId: 12,
  6. type:2 //1:观众 2: 主播
  7. },
  8. type:17,
  9. time: 1367997715932
  10. }
  11. ```
加入连麦通知

权重:5

  1. {
  2. data:{
  3. mainRoomId: 1,
  4. roomId: 12,
  5. playUrl:"观众播放短延时地址",
  6. uid: 1,
  7. name:"观众"
  8. },
  9. type:18,
  10. time: 1367997715932
  11. }
退出连麦通知

权重:5

  1. {
  2. data:{
  3. mainRoomId: 1,
  4. roomId: 12,
  5. uid: 1,
  6. name:"观众"
  7. },
  8. type:19,
  9. time: 1367997715932
  10. }
    1. 错误码
描述
200 处理成功
2001 参数错误
2002 用户不存在
2003 直播不存在
2004 直播已存在
2010 访问用户信息失败
2020 访问直播信息失败
2040 创建环信聊天室失败
2050 消息发送到环信失败
3000 混流错误
3001 混流不可用
3010 访问邀麦信息失败
3020 直播间已经连麦中
3400 混流无效参数
3404 混流主流不存在
3500 混流内部错误
4010 直播状态设置错误
本文导读目录
本文导读目录
以上内容是否对您有帮助?