语音对讲
描述
前置说明
1.本接口要求设备具备音频的输入和外放能力,且以gb28181
的方式接入。
2.发送的音频数据编码格式为g711a,可以参考如下前端音频采集的demo。
3.目前已验证支持gb28181公网
对讲的摄像头厂商: 大华、华为、睿瞳科技、京目科技、凯锐视讯、TPLINK、天地伟业、部分海康型号(比如iDS-2DF8S433IX-A、DS-2CD3T47FWDP2-LS、iDS-MCD202-G)。
接口分两个步骤进行
步骤1
:首先获取发送音频的url
- 接口请求域名:qvs.qiniuapi.com
- 请求方式:POST
- 接口路径:/v1/namespaces/{namespaceId}/devices/{deviceId}/talk
请求参数
路径参数
参数名称 | 必填 | 字段类型 | 说明 |
---|---|---|---|
namespaceId | 是 | string | 空间ID |
deviceId | 是 | string | 设备ID |
Body
参数名称 | 必填 | 字段类型 | 说明 |
---|---|---|---|
isV2 | 是 | bool | 该字段为true时,启用低延迟版本,收到返回地址后在发送语音数据 |
channels | 否 | string数组 | 设备类型为平台 时,需指定通道ID |
version | 否 | string | 对讲国标协议版本,取值"2014"或"2016",默认为2014,例如大部分大华摄像头为GBT 28181-2014版本对讲模式 |
transProtocol | 否 | string | 取值"tcp"或"udp",流传输模式,默认udp |
响应参数
参数名称 | 字段类型 | 说明 |
---|---|---|
audioSendAddrForHttp | string | 用来发送音频数据的http地址 |
audioSendAddrForHttps | string | 用来发送音频https地址 |
streamUri | string | onvif流地址(onvif设备 在步骤2会用到这个参数) |
注意 当连续1min没有向该地址发送语音, 则需重新执行本接口,获取新的地址,
示例
请求示例
curl --request POST \
--url http://qvs.qiniuapi.com/v1/namespaces/2akrarvzvyijd/devices/31011500991320000028/talk \
--header 'authorization: Qiniu j853F3bLkWl59I5BOkWm6q1Z1mZClpr9Z9CLfDE0:u372aQV0359mzwTVGxn22sRgFYc=' \
--header 'content-type: application/json'
--data-raw '{
"isV2": true
}'
响应示例
{
"audioSendAddrForHttp":"http://1945028622.cloudvdn.com/api/v1/gb28181?action=append_audio_pcm&id=31011500991320003732&ssrc=1623567",
"audioSendAddrForHttps":"https://1945028622.cloudvdn.com/api/v1/gb28181?action=append_audio_pcm&id=31011500991320003732&ssrc=1623567"
}
步骤2
:向第一步返回的url地址发送音频。从语音采集端可直接向改地址发送数据,不需要代理
音频发送报文格式
- 接口地址:
步骤1
中接口返回 - 请求方式:POST
请求参数
路径参数
null
参数名称 | 必填 | 字段类型 | 说明 |
---|---|---|---|
base64_pcm | 是 | string | base64 编码的g711a 格式音频数据, 音频采样率务必8000 ,base64数据中不能有换行符\n |
deviceId | 当设备类型为onvif时必须 | string | 设备id |
streamUri | 当设备类型为onvif时必须 | string | onvif流地址(步骤1返回) |
示例
请求示例
curl --request POST \
--url https://1945028622.cloudvdn.com/api/v1/gb28181?action=append_audio_pcm&id=31011500991320003732&ssrc=1623567 \
--header 'content-type: application/json'
--data-raw '{
"base64_pcm":"1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1VVVVdXV1dVVVVVVVVTV1dTV1FRV1NRQV9TU1dfWVlXX0VJW11RX0NFW199IfXRcWlHawc32"
}'
响应示例
{
// 当code为0,请求成功; code为6002,请求失败。失败原因: 当连续1min, 没有向该地址发送语音,需要重新执行步骤1,获取新的url
"code": Number
}
```{
// 当code为0,请求成功; code为6002,请求失败。失败原因: 当连续1min, 没有向该地址发送语音,需要重新执行步骤1,获取新的url
"code": Number
}
````{
// 当code为0,请求成功; code为6002,请求失败。失败原因: 当连续1min, 没有向该地址发送语音,需要重新执行步骤1,获取新的url
"code": Number
}
```{
// 当code为0,请求成功; code为6002,请求失败。失败原因: 当连续1min, 没有向该地址发送语音,需要重新执行步骤1,获取新的url
"code": Number
}
文档反馈
(如有产品使用问题,请 提交工单)