直推 CDN
setDirectCdnStreamingAudioConfiguration:
设置你作为主播时直接推流至 CDN 的音频配置。
Objective-C
- (int)setDirectCdnStreamingAudioConfiguration:(AgoraAudioProfile)profile NS_SWIFT_NAME(setDirectCdnStreamingAudioConfiguration(_:));
废弃
当你在 AgoraDirectCdnStreamingMediaOptions 中将 publishMicrophoneTrack 或 publishCustomAudioTrack 设置为 YES 时,可以调用该方法设置音频配置。
参数
- profile
- 音频配置,包括采样率、码率、编码模式和声道数。详见 AgoraAudioProfile。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setDirectCdnStreamingVideoConfiguration:
设置你通过直推 CDN 推送的媒体流的视频属性。
Objective-C
- (int)setDirectCdnStreamingVideoConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config NS_SWIFT_NAME(setDirectCdnStreamingVideoConfiguration(_:));
废弃
该方法仅影响通过摄像头、屏幕或自定义视频源采集的视频流。也就是说,当你在 AgoraDirectCdnStreamingMediaOptions 中将 publishCameraTrack 或 publishCustomVideoTrack 设置为 YES 以采集视频时,可以调用该方法设置视频属性。如果本地摄像头不支持你设置的视频分辨率,SDK 会自动将其调整为最接近你设置值的分辨率进行采集、编码或传输,并保持你设置的宽高比。你可以通过 onDirectCdnStreamingStats: 回调获取视频流的实际分辨率。
信息
在 CDN 直播过程中,声网仅支持将 AgoraVideoOutputOrientationMode 设置为
AgoraVideoOutputOrientationModeFixedLandscape 或 AgoraVideoOutputOrientationModeFixedPortrait。参数
- config
- 视频属性,详见 AgoraVideoEncoderConfiguration。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
startDirectCdnStreaming:publishUrl:mediaOptions:
开始将媒体流直接推送到 CDN。
Objective-C
- (int)startDirectCdnStreaming:(id<AgoraDirectCdnStreamingEventDelegate> _Nonnull)delegate
publishUrl:(NSString * _Nonnull)publishUrl
mediaOptions:(AgoraDirectCdnStreamingMediaOptions * _Nonnull)options NS_SWIFT_NAME(startDirectCdnStreaming(_:publishUrl:mediaOptions:));
废弃
声网不支持将媒体流重复推送到同一个 URL。 声网不支持同时将
publishCameraTrack 和 publishCustomVideoTrack 设置为 YES,或将 publishMicrophoneTrack 和 publishCustomAudioTrack 设置为 YES。 在选择媒体设置选项(AgoraDirectCdnStreamingMediaOptions)时,可以参考以下示例: 如果你希望从自定义源推送主播采集的音视频流,媒体设置选项应如下设置: - 将
publishCustomAudioTrack设置为 YES,并调用 pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: 或 pushExternalAudioFrameRawData:samples:sampleRate:channels:trackId:timestamp: 方法; - 将
publishCustomVideoTrack设置为 YES,并调用 pushExternalVideoFrame:videoTrackId: 方法; - 将
publishCameraTrack设置为 NO(默认值); - 将
publishMicrophoneTrack设置为 NO(默认值)。
publishCustomAudioTrack 或 publishMicrophoneTrack 设置为 YES,并调用 pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: 或 pushExternalAudioFrameRawData:samples:sampleRate:channels:trackId:timestamp: 方法实现纯音频直播。信息
声网仅支持将一路音视频流或一路音频流推送到 CDN。
参数
- delegate
- 事件回调接口,详见 AgoraDirectCdnStreamingEventDelegate。
- publishUrl
- CDN 直播推流地址。
- mediaOptions
- 主播的媒体设置选项,详见 AgoraDirectCdnStreamingMediaOptions。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
stopDirectCdnStreaming
onDirectCdnStreamingStateChanged:reason:message:
CDN 推流状态发生变化回调。
Objective-C
- (void)onDirectCdnStreamingStateChanged:(AgoraDirectCdnStreamingState)state
reason:(AgoraDirectCdnStreamingReason)reason
message:(NSString *_Nullable)message NS_SWIFT_NAME(onDirectCdnStreamingStateChanged(_:reason:message:));
当主播直接向 CDN 推流时,如果推流状态发生变化,SDK 会触发该回调,报告变化后的推流状态、错误码及其他信息。你可以通过该回调排查问题。
触发时机
该回调在 CDN 推流状态发生变化时被触发。
参数
- state
- 当前的 CDN 推流状态。详见 AgoraDirectCdnStreamingState。
- reason
- CDN 推流状态变化的原因。详见 AgoraDirectCdnStreamingReason。
- message
- 关于推流状态变化的补充信息。
onDirectCdnStreamingStats:
上报 CDN 推流统计信息。
Objective-C
- (void)onDirectCdnStreamingStats:(AgoraDirectCdnStreamingStats *_Nonnull)stats NS_SWIFT_NAME(onDirectCdnStreamingStats(_:));
触发时机
该回调在主播直接向 CDN 推送媒体流时每秒触发一次。
参数
- stats
- 当前 CDN 推流的统计信息,详见 AgoraDirectCdnStreamingStats。