C++回复SRS回调函数on_play的响应体怎么填?
时间: 2024-02-02 10:04:16 浏览: 81
C#调用C++动态库中自身定义的回调函数
C++回复SRS回调函数on_play的响应体需要使用SRS提供的API进行填写。具体的填写流程可以参考下面的示例代码:
```c++
// 创建AMF0编码格式的响应体
SrsAmf0Object* obj = SrsAmf0Any::object();
obj->set("level", SrsAmf0Any::str("status"));
obj->set("code", SrsAmf0Any::str("NetStream.Play.Start"));
obj->set("description", SrsAmf0Any::str("Started playing stream."));
obj->set("clientId", SrsAmf0Any::str("0.0.0.0"));
obj->set("duration", SrsAmf0Any::number(0));
obj->set("width", SrsAmf0Any::number(0));
obj->set("height", SrsAmf0Any::number(0));
// 创建响应体的消息头
SrsMessageHeader header;
header.initialize(0, 0, SrsConsts::RTMP_MSG_AMF0CommandMessage, 0, SrsConsts::RTMP_CID_OverStream);
// 创建响应体的消息负载
SrsSharedPtrMessage payload = SrsSharedPtrMessage::create();
payload->header = header;
payload->payload = obj->raw();
// 发送响应体
srs_write_message(payload.get(), skt);
```
这里的示例代码中,首先创建了一个AMF0编码格式的响应体,包含了一些关于播放状态的信息,比如code、description、level、duration等等。然后创建了响应体的消息头和消息负载,最后使用SRS提供的API发送响应体。具体的响应体内容可以根据实际需求进行修改。
阅读全文