CDN 直推
本文主要介绍单主播直推 CDN 的使用场景。
在单人直播时,SDK 将主播的音视频直接推流到 CDN 分发,观众端不需要加入 RTC 房间,只需要通过播放器进行拉流播放。
- QNCDNStreamingConfig 中的 videoTrack 和 audioTrack 参数,确保在整个推流开始和结束的过程中是有效的
使用方式如下:
创建 QNCDNStreamingClient
QNCDNStreamingClient 为 RTMP 推流的统一管理类,通过 QNRTC.createCDNStreamingClient 接口来创建 QNCDNStreamingClient 对象
QNCDNStreamingClient *streamingClient = [QNRTC createCDNStreamingClient];
设置状态回调和统计信息代理
将代理实现类设置给 streamingClient 的 delegate
streamingClient.delegate = self;
其中 delegate QNCDNStreamingDelegate 代理回调方法定义如下:
/*!
* @abstract 推流状态回调
*
* @param client 推流实例
* @param state 推流状态
* @param code 错误码,请参考 QNErrorCode
* @param message 描述信息
*
* @since v6.0.0
*/
- (void)cdnStreamingClient:(QNCDNStreamingClient *)client didCDNStreamingConnectionStateChanged:(QNConnectionState)state
errorCode:(int)code
message:(NSString *)message;
/*!
* @abstract 推流统计信息回调
*
* @param stats 统计信息
* @see QNCDNStreamingStats.
*
* @since v6.0.0
*/
- (void)cdnStreamingClient:(QNCDNStreamingClient *)client didCDNStreamingStats:(QNCDNStreamingStats *)stats;
开始推流
开始推流之前,需要配置推流参数 QNCDNStreamingConfig。 通过调用 [QNCDNStreamingClient.startWithConfig] 开始推流。使用代码参考如下:
// 配置推流参数
QNCDNStreamingConfig *streamingConfig = [[QNCDNStreamingConfig alloc] init];
streamingConfig.audioTrack = microphoneAudioTrack;
streamingConfig.videoTrack = cameraVideoTrack;
streamingConfig.publishUrl = @"rtmp://host/app/stream";
// 开始推流
[streamingClient startWithConfig:streamingConfig];
停止推流
调用 [QNCDNStreamingClient.stop] 停止推流。使用代码参考如下:
// 停止推流
[streamingClient stop];
示例代码
RTMP 直推 CDN 的示例代码可参考 API-Examples-iOS
文档反馈
(如有产品使用问题,请 提交工单)