mPaaS音视频通话拉流相关的文档能提供一下吗?https://help.aliyun.com/document_detail/372593.html?spm=a2c4g.372591.0.i0
我在这边只看到了创建和加入房间的api
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 mPaaS 音视频通话中,拉流相关的功能主要通过订阅音视频流的接口实现。以下是关于拉流相关文档的详细说明和操作步骤:
拉流是指从服务器或其他参与者处获取音视频数据并进行播放的过程。在 mPaaS 音视频通话中,拉流的操作通过 Subscribe
接口完成。
以下是 Subscribe
接口的定义和参数说明:
struct SubscribeParam {
SubscribeParam(): enableVideo(false), enableAudio(true) {}
bool enableVideo; // 是否订阅视频流
bool enableAudio; // 是否订阅音频流
std::string streamId; // 要订阅的流标识(每个发布者有唯一的流 ID)
};
void Subscribe(const SubscribeParam& subParam);
false
。true
。以下是拉流的具体操作步骤:
在拉流之前,需要先加入房间。可以通过 JoinRoom
接口完成房间的加入操作。
struct JoinRoomParam {
std::string roomId; // 房间 ID
std::string uid; // 用户 ID
std::string sign; // 签名
std::string bizName; // 业务名称
std::string subBiz; // 子业务名称
std::string token; // 加入房间的凭证
std::string workspaceId; // 工作空间 ID(mPaaS 类业务需要填写)
bool autoSubscribe; // 是否自动订阅房间内发布的音视频流
EngineType engine; // 媒体数据传输模式(默认使用 SFU 模式)
std::string ext; // 扩展字段(暂未使用)
};
void JoinRoom(const JoinRoomParam& joinParam);
true
,则会自动订阅房间内所有发布者的音视频流,无需手动调用 Subscribe
。false
,则需要手动调用 Subscribe
接口订阅特定的流。根据需求调用 Subscribe
接口订阅特定的音视频流。例如:
SubscribeParam subParam;
subParam.enableVideo = true; // 订阅视频流
subParam.enableAudio = true; // 订阅音频流
subParam.streamId = "stream123"; // 指定要订阅的流 ID
Subscribe(subParam);
streamId
参数可以灵活选择订阅的目标流。autoSubscribe
,则无需手动调用 Subscribe
接口,但可能会增加带宽消耗。以下是一个完整的拉流示例代码:
// 加入房间
JoinRoomParam joinParam;
joinParam.roomId = "room123";
joinParam.uid = "user1";
joinParam.sign = "signature";
joinParam.bizName = "biz123";
joinParam.subBiz = "subBiz123";
joinParam.token = "token123";
joinParam.workspaceId = "workspace123";
joinParam.autoSubscribe = false; // 手动订阅
JoinRoom(joinParam);
// 订阅音视频流
SubscribeParam subParam;
subParam.enableVideo = true;
subParam.enableAudio = true;
subParam.streamId = "stream123"; // 指定流 ID
Subscribe(subParam);
在小程序或 Web 端,可以通过音视频通话组件实现拉流功能。以下是组件的相关说明:
<rtc
config="{{ config }}"
currentUserId="{{ currentUserId }}"
onPlayerChange="handlePlayerChange"
onUserChange="handleUserChange"
onError="handleError"
/>
通过上述接口和组件,您可以实现 mPaaS 音视频通话中的拉流功能。核心操作包括加入房间和订阅音视频流,同时支持动态调整订阅内容和处理错误。请根据实际需求选择自动订阅或手动订阅模式,并确保正确处理流 ID 和错误回调。
如果您需要更详细的代码示例或进一步的技术支持,请参考 mPaaS 官方文档或联系技术支持团队。