zhibo/模块文档/02-直播间管理模块.md
2025-12-30 11:11:11 +08:00

5.2 KiB

直播间管理模块接口文档

模块概述

直播间管理模块提供直播间的创建、查询、控制等功能。


接口列表

1. 获取直播间列表

接口路径: GET /api/front/live/public/rooms

请求参数: 无

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "id": "房间ID",
      "title": "直播间标题",
      "streamerName": "主播名称",
      "streamerId": 主播ID,
      "streamerAvatar": "主播头像URL",
      "coverImage": "封面图URL",
      "isLive": true,
      "viewerCount": 1234,
      "likeCount": 5678,
      "categoryId": 1,
      "categoryName": "游戏",
      "tags": ["英雄联盟", "竞技"],
      "streamUrls": {
        "rtmp": "rtmp://192.168.1.164:1935/live/房间ID",
        "flv": "http://192.168.1.164:8080/live/房间ID.flv",
        "hls": "http://192.168.1.164:8080/live/房间ID.m3u8"
      },
      "createTime": "2024-12-30T10:00:00",
      "startTime": "2024-12-30T10:30:00"
    }
  ]
}

2. 获取直播间详情

接口路径: GET /api/front/live/public/rooms/{id}

请求参数:

id: 房间ID (路径参数)

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "id": "房间ID",
    "title": "直播间标题",
    "description": "直播间描述",
    "streamerName": "主播名称",
    "streamerId": 主播ID,
    "streamerAvatar": "主播头像URL",
    "streamerLevel": 10,
    "coverImage": "封面图URL",
    "streamKey": "推流密钥",
    "isLive": true,
    "viewerCount": 1234,
    "likeCount": 5678,
    "shareCount": 123,
    "categoryId": 1,
    "categoryName": "游戏",
    "tags": ["英雄联盟", "竞技"],
    "streamUrls": {
      "rtmp": "rtmp://192.168.1.164:1935/live/房间ID",
      "flv": "http://192.168.1.164:8080/live/房间ID.flv",
      "hls": "http://192.168.1.164:8080/live/房间ID.m3u8"
    },
    "isFollowing": false,
    "createTime": "2024-12-30T10:00:00",
    "startTime": "2024-12-30T10:30:00",
    "notice": "直播间公告"
  }
}

3. 创建直播间

接口路径: POST /api/front/live/rooms

请求头:

Authorization: Bearer {token}

请求参数:

{
  "title": "直播间标题",
  "streamerName": "主播名称",
  "type": "live",
  "categoryId": 1,
  "description": "描述",
  "coverImage": "封面URL"
}

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "id": "房间ID",
    "title": "直播间标题",
    "streamKey": "推流密钥",
    "streamUrls": {
      "rtmp": "rtmp://192.168.1.164:1935/live/房间ID",
      "flv": "http://192.168.1.164:8080/live/房间ID.flv",
      "hls": "http://192.168.1.164:8080/live/房间ID.m3u8"
    }
  }
}

4. 开始直播

接口路径: POST /api/front/live/room/{id}/start

请求头:

Authorization: Bearer {token}

请求参数:

id: 房间ID (路径参数)

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "success": true,
    "message": "直播已开始"
  }
}

5. 结束直播

接口路径: POST /api/front/live/room/{id}/stop

请求头:

Authorization: Bearer {token}

请求参数:

id: 房间ID (路径参数)

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "success": true,
    "message": "直播已结束"
  }
}

6. 关注主播

接口路径: POST /api/front/live/follow

请求头:

Authorization: Bearer {token}

请求参数:

{
  "streamerId": 主播ID,
  "action": "follow"
}

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "success": true,
    "isFollowing": true
  }
}

7. 获取在线人数

接口路径: GET /api/live/online/count/{roomId}

请求参数:

roomId: 房间ID (路径参数)

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "count": 1234,
    "roomId": "房间ID"
  }
}

8. 获取观众列表

接口路径: GET /api/front/live/rooms/{roomId}/viewers

请求参数:

roomId: 房间ID (路径参数)
page: 页码 (默认1)
pageSize: 每页数量 (默认20)

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "userId": 用户ID,
      "nickname": "用户昵称",
      "avatar": "用户头像URL",
      "level": 10,
      "vipLevel": 2,
      "isFollowing": false,
      "joinTime": "2024-12-30T10:30:00"
    }
  ],
  "total": 1234,
  "page": 1,
  "pageSize": 20
}

9. 赠送礼物

接口路径: POST /api/front/live/rooms/{roomId}/gift

请求头:

Authorization: Bearer {token}

请求参数:

{
  "roomId": 房间ID,
  "giftId": 礼物ID,
  "count": 数量
}

返回参数:

{
  "code": 200,
  "msg": "success",
  "data": {
    "success": true,
    "newBalance": 9500,
    "giftName": "玫瑰",
    "totalPrice": 500,
    "message": "赠送成功"
  }
}

10. 手动广播在线人数

接口路径: POST /api/live/online/broadcast/{roomId}

请求头:

Authorization: Bearer {token}

请求参数:

roomId: 房间ID (路径参数)

返回参数:

{
  "code": 200,
  "msg": "success"
}