发布和订阅
本部分介绍能够实现向房间发布或取消发布媒体流,订阅或停止订阅媒体流等操作。
发布 Track
发布 Track 前,需要对 Track 进行配置和创建,详情请见音视频采集,创建好 Track 后即可将该 Track 通过 QNRTCClient.Publish
向房间内进行发布。
virtual int Publish(LocalTrackList& track_list) = 0;
其中,发布结果通过QNPublishResultCallback 回调了发布操作的结果通知,其接口定义如下:
class QINIU_EXPORT_DLL QNPublishResultCallback
{
public:
/**
* 发布成功后触发此回调
*/
virtual void OnPublished() = 0;
/**
* 发布失败后触发此回调
*
* @param error_code 错误码
* @param error_message 错误消息
*/
virtual void OnPublishError(int error_code, const std::string& error_message) = 0;
protected:
~QNPublishResultCallback() {}
};
发布 Track 成功后,远端用户会收到如下通知回调:
class QNClientEventListener
{
public:
// 当远端 track 发布时会触发此回调
virtual void OnUserPublished(const std::string& remote_user_id_, const RemoteTrackList& track_list) = 0;
}
取消发布 Track
调用 QNRTCClient.UnPublish
取消发布本地媒体流。
// 取消发布本地音视频 track,支持可变参数
virtual int UnPublish(LocalTrackList& track_list) = 0;
取消发布成功后,远端用户会收到如下通知回调:
class QNClientEventListener
{
public:
// 当远端 track 取消发布时会触发此回调
virtual void OnUserUnpublished(const std::string& remote_user_id, const RemoteTrackList& track_list) = 0;
}
订阅远端 Track
在 v4.x.x 版本后提供了默认自动订阅的功能,用户可以通过调用 QNRTCClient.SetAutoSubscribe
进行对自动订阅功能的开启与关闭,默认为开启状态。
virtual void SetAutoSubscribe(bool auto_subscribe) = 0;
在自动订阅功能关闭时,用户可以通过调用 QNRTCClient.Subscribe
接口订阅远端 Tracks。
// 订阅远端音视频 track,支持可变参数
virtual void Subscribe(const RemoteTrackList& track_list) = 0;
本地订阅远端用户媒体流成功后,会触如下回调:
class QNClientEventListener
{
public:
// 当成功订阅远端 track 时会触发此回调
virtual void OnSubscribed(const std::string& remote_user_id, const RemoteAudioTrackList& remote_audio_track_list, const RemoteVideoTrackList& remote_video_track_list) = 0;
}
取消订阅远端 Track
调用 QNRTCClient.UnSubscribe
接口取消订阅远端 Tracks。
virtual void UnSubscribe(const RemoteTrackList& track_list) = 0;
文档反馈
(如有产品使用问题,请 提交工单)