实时音视频

  • 实时音视频 > 使用指南 > iOS >CDN 直推

    CDN 直推

    最近更新时间: 2024-01-18 17:23:53

    本文主要介绍单主播直推 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

    以上内容是否对您有帮助?
  • Qvm free helper
    Close