直推 CDN
setDirectCdnStreamingAudioConfiguration
设置主播端直接向 CDN 推流时的音频编码属性。
- (int)setDirectCdnStreamingAudioConfiguration:(AgoraAudioProfile)profile;
该方法仅对麦克风采集或自采集的音频有效,即对在 AgoraDirectCdnStreamingMediaOptions
中设置 publishMicrophoneTrack
或 publishCustomAudioTrack
为 YES
时所采集的音频有效。
参数
参数名 | 描述 |
---|---|
profile | 音频编码属性,包含采样率、码率、编码模式和声道数。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setDirectCdnStreamingVideoConfiguration
设置主播端直接向 CDN 推流时的视频编码属性。
- (int)setDirectCdnStreamingVideoConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config;
该方法仅对摄像头采集、屏幕共享或自采集的视频有效。即对在 AgoraDirectCdnStreamingMediaOptions
中设置 publishCameraTrack
或 publishCustomVideoTrack
为 YES
时所采集的视频有效。
如果你设置的视频分辨率超出你的摄像头设备支持的范围,SDK 会根据你的设置进行自适应,取最接近、且长宽比与你设置的分辨率一致的值进行采集、编码、推流。你可以通过 onDirectCdnStreamingStats
回调了解推送的视频流的实际分辨率。
参数
参数名 | 描述 |
---|---|
config | 视频编码参数配置。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
startDirectCdnStreaming
设置主播端开始直接向 CDN 推流。
- (int)startDirectCdnStreaming:(id<AgoraDirectCdnStreamingEventDelegate> _Nonnull)delegate publishUrl:(NSString * _Nonnull)publishUrl mediaOptions:(AgoraDirectCdnStreamingMediaOptions * _Nonnull)options;
SDK 不支持同一时间向同一个 URL 重复推流。
媒体选项说明SDK 不支持 publishCameraTrack
和 publishCustomVideoTrack
同时为 YES
,也不支持 publishMicrophoneTrack
和 publishCustomAudioTrack
同时为 YES
。你可以根据场景需求设置媒体选项 (AgoraDirectCdnStreamingMediaOptions
)。示例如下:
如果你想推送主播端采集的音视频流,请将媒体选项进行如下设置:
-
publishCustomAudioTrack
设为YES
并调用pushExternalAudioFrameSampleBuffer
或pushExternalAudioFrameRawData
-
publishCustomVideoTrack
设为YES
并调用pushExternalVideoFrame
-
确保
publishCameraTrack
为NO
(默认值) -
确保
publishMicrophoneTrack
为NO
(默认值)
自 v4.2.0 起,SDK 支持推送纯音频流。你可以在 AgoraDirectCdnStreamingMediaOptions
中将 publishCustomAudioTrack
或者 publishMicrophoneTrack
设为 YES
,并调用 pushExternalAudioFrameSampleBuffer
或 pushExternalAudioFrameRawData
即可推送纯音频流。注: 在向 CDN 直接推流时,SDK 目前仅支持推送一路音频流及视频流,或一路纯音频流。
参数
参数名 | 描述 |
---|---|
delegate | 详见 |
publishUrl | CDN 推流 URL。 |
options | 主播端的媒体选项。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
stopDirectCdnStreaming
onDirectCdnStreamingStateChanged
CDN 推流状态改变回调。
- (void)onDirectCdnStreamingStateChanged:(AgoraDirectCdnStreamingState)state
error:(AgoraDirectCdnStreamingError)error
message:(NSString *_Nullable)message;
主播端直接向 CDN 推流后,当推流状态改变时,SDK 会触发该回调向你报告新的状态、错误码和信息。你可以据此排查问题。
参数
参数名 | 描述 |
---|---|
state | 当前推流状态。详见 |
error | 推流出错的原因。详见 |
message | 状态改变对应的信息。 |
onDirectCdnStreamingStats
CDN 推流统计数据回调。
- (void)onDirectCdnStreamingStats:(AgoraDirectCdnStreamStats *_Nonnull)stats;
在主播直接向 CDN 推流的过程中,SDK 每隔 1 秒触发一次该回调。
参数
参数名 | 描述 |
---|---|
stats | 当前推流的统计数据。详见 |