NERtc iOS SDK  V4.6.20
NERtcEngineDelegate.h
浏览该文件的文档.
1 /*
2  * Copyright (c) 2021 NetEase, Inc. All rights reserved.
3  */
4 
5 #import <Foundation/Foundation.h>
7 #import "NERtcEngineEnum.h"
8 #import "NERtcEngineBase.h"
9 #import <CoreVideo/CoreVideo.h>
10 
11 NS_ASSUME_NONNULL_BEGIN
12 
21 @protocol NERtcEngineDelegate <NSObject>
22 
23 @optional
24 
39 - (void)onNERtcEngineDidError:(NERtcError)errCode;
40 
59 - (void)onNERtcEngineDidWarning:(NERtcWarning)warnCode msg:(NSString *)msg;
60 
75 - (void)onNERtcEngineConnectionStateChangeWithState:(NERtcConnectionStateType)state
76  reason:(NERtcReasonConnectionChangedType)reason;
77 
91 - (void)onNERtcEngineDidLeaveChannelWithResult:(NERtcError)result;
92 
109 - (void)onNERtcEngineDidDisconnectWithReason:(NERtcError)reason;
110 
123  - (void)onNERtcEngineRejoinChannel:(NERtcError)result;
124 
151  - (void)onNERtcEngineUserDidJoinWithUserID:(uint64_t)userID userName:(NSString *)userName;
152 
176 - (void)onNERtcEngineUserDidLeaveWithUserID:(uint64_t)userID reason:(NERtcSessionLeaveReason)reason;
177 
199 - (void)onNERtcEngineDidClientRoleChanged:(NERtcClientRole)oldRole newRole:(NERtcClientRole)newRole;
200 
212 
224 - (void)onNERtcEngineUserAudioDidStart:(uint64_t)userID;
225 
237 - (void)onNERtcEngineUserAudioDidStop:(uint64_t)userID;
238 
254 - (void)onNERtcEngineUserVideoDidStartWithUserID:(uint64_t)userID videoProfile:(NERtcVideoProfileType)profile;
255 
269 - (void)onNERtcEngineUserVideoDidStop:(uint64_t)userID;
270 
285 - (void)onNERtcEngineUserSubStreamDidStartWithUserID:(uint64_t)userID subStreamProfile:(NERtcVideoProfileType)profile;
286 
299 - (void)onNERtcEngineUserSubStreamDidStop:(uint64_t)userID;
300 
323 - (void)onNERtcEngineMediaRightChangeWithAudio:(BOOL)isAudioBannedByServer
324  video:(BOOL)isVideoBannedByServer;
325 
338 - (void)onNERtcEngineUserSubStreamAudioDidStart:(uint64_t)userID;
339 
352 - (void)onNERtcEngineUserSubStreamAudioDidStop:(uint64_t)userID;
353 
372 - (void)onNERtcEngineUser:(uint64_t)userID subStreamAudioMuted:(BOOL)muted;
373 
374 @end
375 
386 @protocol NERtcEngineLiveStreamObserver <NSObject>
387 
388 @optional
403 - (void)onNERTCEngineLiveStreamState:(NERtcLiveStreamStateCode)state taskID:(NSString *)taskID url:(NSString *)url;
404 
405 @end
406 
417 @protocol NERtcEngineVideoFrameObserver <NSObject>
418 
419 @optional
420 
437 - (void)onNERtcEngineVideoFrameCaptured:(CVPixelBufferRef)bufferRef rotation:(NERtcVideoRotationType)rotation;
438 
439 @end
440 
450 
451 @optional
452 //
453 //- (void)onNERtcEngineAudioDeviceInterruptionBegan;
454 //
455 //- (void)onNERtcEngineAudioDeviceInterruptionEnded;
456 
467 - (void)onNERtcEngineAudioDeviceRoutingDidChange:(NERtcAudioOutputRouting)routing;
468 
469 @end
470 
479 @protocol NERtcEngineVideoRenderSink <NSObject>
480 
481 @optional
494 - (void)onNERtcEngineRenderFrame:(NERtcVideoFrame *_Nonnull)frame;
495 
496 @end
507 @protocol NERtcEngineVideoSEIObserver <NSObject>
508 
509 @optional
510 
527 - (void)onNERtcEngineRecvSEIMsg:(uint64_t)userID message:(NSData *)message;
528 
529 @end
530 
540 
541 @optional
542 
557 - (void)onNERtcEngineUserVideoProfileDidUpdate:(uint64_t)userID maxProfile:(NERtcVideoProfileType)maxProfile;
558 
576 - (void)onNERtcEngineUser:(uint64_t)userID videoMuted:(BOOL)muted;
577 
608 - (void)onNERtcEngineUser:(uint64_t)userID videoMuted:(BOOL)muted streamType:(NERtcStreamChannelType)streamType;
609 
623 - (void)onNERtcEngineUser:(uint64_t)userID audioMuted:(BOOL)muted;
624 
639 - (void)onNERtcEngineFirstVideoDataDidReceiveWithUserID:(uint64_t)userID;
640 
666 - (void)onNERtcEngineFirstVideoDataDidReceiveWithUserID:(uint64_t)userID streamType:(NERtcStreamChannelType)streamType;
667 
678 - (void)onNERtcEngineFirstAudioDataDidReceiveWithUserID:(uint64_t)userID;
679 
691 - (void)onEngineFirstAudioFrameDecoded:(uint64_t)userID;
692 
711 - (void)onEngineFirstVideoFrameDecoded:(uint64_t)userID width:(uint32_t)width height:(uint32_t)height;
712 
748 - (void)onEngineFirstVideoFrameDecoded:(uint64_t)userID width:(uint32_t)width height:(uint32_t)height streamType:(NERtcStreamChannelType)streamType;
749 
764 - (void)onNERtcEngineAudioDeviceStateChangeWithDeviceID:(NSString *)deviceID deviceType:(NERtcAudioDeviceType)deviceType deviceState:(NERtcAudioDeviceState)deviceState;
765 
784 - (void)onNERtcEngineVideoDeviceStateChangeWithDeviceID:(NSString *)deviceID deviceType:(NERtcVideoDeviceType)deviceType deviceState:(NERtcVideoDeviceState)deviceState;
785 
798 - (void)onNERtcEngineNetworkConnectionTypeChanged:(NERtcNetworkConnectionType)newConnectionType;
799 
821 - (void)onAudioMixingStateChanged:(NERtcAudioMixingState)state errorCode:(NERtcAudioMixingErrorCode)errorCode;
822 
835 - (void)onAudioMixingTimestampUpdate:(uint64_t)timeStampMS;
836 
837 
849 - (void)onAudioEffectFinished:(uint32_t)effectId;
850 
851 
870 - (void)onLocalAudioVolumeIndication:(int)volume;
871 
890 - (void)onLocalAudioVolumeIndication:(int)volume withVad:(BOOL)enableVad;
891 
892 
915 -(void)onRemoteAudioVolumeIndication:(nullable NSArray<NERtcAudioVolumeInfo*> *)speakers totalVolume:(int)totalVolume;
916 
931 - (void)onNERtcEngineHardwareResourceReleased:(NERtcError)result;
932 
949 - (void)onNERtcCameraFocusChanged:(CGPoint)focusPoint;
950 
965 - (void)onNERtcCameraExposureChanged:(CGPoint)exposurePoint;
966 
967 
968 
982 
995 - (void)onNERtcEngineChannelMediaRelayStateDidChange:(NERtcChannelMediaRelayState)state channelName:(NSString *)channelName;
996 
1011 - (void)onNERtcEngineDidReceiveChannelMediaRelayEvent:(NERtcChannelMediaRelayEvent)event channelName:(NSString *)channelName error:(NERtcError)error;
1012 
1026 - (void)onNERtcEngineAudioRecording:(NERtcAudioRecordingCode)code filePath:(NSString *)filePath;
1027 
1028 
1049 - (void)onNERtcEngineLocalPublishFallbackToAudioOnly:(BOOL)isFallback streamType:(NERtcStreamChannelType)streamType;
1050 
1074 - (void)onNERtcEngineRemoteSubscribeFallbackToAudioOnly:(uint64_t)uid isFallback:(BOOL)isFallback streamType:(NERtcStreamChannelType)streamType;
1075 
1091 - (void)onNERtcEngineLastmileQuality:(NERtcNetworkQuality)quality;
1092 
1109 - (void)onNERtcEngineLastmileProbeTestResult:(NERtcLastmileProbeResult *)result;
1110 
1130 - (void)onNERtcEngineVirtualBackgroundSourceEnabled:(BOOL)enabled reason:(NERtcVirtualBackgroundSourceStateReason)reason;
1131 
1146 - (void)onNERtcEngineLocalVideoWatermarkStateWithStreamType:(NERtcStreamChannelType)type
1147  state:(NERtcLocalVideoWatermarkState)state;
1148 
1149 @end
1150 
1161 @protocol NERtcEngineAudioFrameObserver <NSObject>
1162 
1163 @optional
1164 
1183 - (void)onNERtcEngineAudioFrameDidRecord:(NERtcAudioFrame *)frame;
1184 
1185 
1204 - (void)onNERtcEngineAudioFrameWillPlayback:(NERtcAudioFrame *)frame;
1205 
1228 - (void)onNERtcEnginePlaybackAudioFrameBeforeMixingWithUserID:(uint64_t)userID frame:(NERtcAudioFrame *)frame;
1229 
1254 - (void)onNERtcEnginePlaybackAudioFrameBeforeMixingWithUserID:(uint64_t)userID frame:(NERtcAudioFrame *)frame channelId:(uint64_t)channelId;
1255 
1276 - (void)onNERtcEngineMixedAudioFrame:(NERtcAudioFrame *)frame;
1277 
1278 
1297 - (void)onNERtcEngineSubStreamAudioFrameDidRecord:(NERtcAudioFrame *)frame;
1298 
1321 - (void)onNERtcEnginePlaybackSubStreamAudioFrameBeforeMixingWithUserID:(uint64_t)userID frame:(NERtcAudioFrame *)frame channelId:(uint64_t)channelId;
1322 
1323 
1324 @end
1325 
1326 NS_ASSUME_NONNULL_END
NERtcAudioMixingErrorCode
伴音错误码。
Definition: NERtcEngineEnum.h:2203
NERtcAudioDeviceState
音频设备状态。
Definition: NERtcEngineEnum.h:2729
NERtcVirtualBackgroundSourceStateReason
虚拟背景未成功启用的原因或确认成功的信息。
Definition: NERtcEngineEnum.h:1029
NERtcChannelMediaRelayEvent
媒体流转发回调事件
Definition: NERtcEngineEnum.h:2945
NERtcChannelMediaRelayState
媒体流转发状态
Definition: NERtcEngineEnum.h:2898
NERtcAudioDeviceType
音频设备类型。
Definition: NERtcEngineEnum.h:2661
NERtcLocalVideoWatermarkState
视频水印状态。
Definition: NERtcEngineEnum.h:1211
NERtcAudioOutputRouting
音频路由。
Definition: NERtcEngineEnum.h:1354
NERtcAudioMixingState
伴音任务状态。
Definition: NERtcEngineEnum.h:2174
NERtcSessionLeaveReason
用户离开房间的原因。
Definition: NERtcEngineEnum.h:121
NERtcConnectionStateType
当前房间的连接状态。
Definition: NERtcEngineEnum.h:45
NERtcVideoProfileType
视频 profile 类型。
Definition: NERtcEngineEnum.h:357
NERtcNetworkConnectionType
网络连接的类型。
Definition: NERtcEngineEnum.h:2360
NERtcAudioRecordingCode
录音回调状态码。
Definition: NERtcEngineEnum.h:1736
NERtcNetworkQuality
网络质量类型。
Definition: NERtcEngineEnum.h:2824
NERtcVideoDeviceState
视频设备状态无限制,SDK 可以完全控制 Audio Session。
Definition: NERtcEngineEnum.h:2776
NERtcClientRole
用户角色。
Definition: NERtcEngineEnum.h:177
NERtcStreamChannelType
SEI发送的流通道类型。
Definition: NERtcEngineEnum.h:998
NERtcLiveStreamStateCode
直播推流状态。
Definition: NERtcEngineEnum.h:2570
NERtcReasonConnectionChangedType
当前engine连接状态变更的原因。
Definition: NERtcEngineEnum.h:226
NERtcVideoDeviceType
视频设备类型。
Definition: NERtcEngineEnum.h:2699
NERtcVideoRotationType
视频数据的旋转方向
Definition: NERtcEngineEnum.h:913
NERtcError
Engine Error Code。
Definition: NERtcEngineErrorCode.h:17
NERtcWarning
Definition: NERtcEngineErrorCode.h:568
音频帧。
Definition: NERtcEngineBase.h:1428
声音音量信息。
Definition: NERtcEngineBase.h:1473
上下行 Last mile 网络质量探测结果。
Definition: NERtcEngineBase.h:2575
视频帧信息。
Definition: NERtcEngineBase.h:1518
音频数据回调 如果需要对音频数据做处理,需要实现这个 protocol
Definition: NERtcEngineDelegate.h:1161
音频会话回调
Definition: NERtcEngineDelegate.h:449
NERtcEngine 常用回调
Definition: NERtcEngineDelegate.h:21
void onNERtcEngineReconnectingStart()
重连开始回调。 客户端和服务器断开连接时,SDK 会进行重连,重连开始时触发此回调。重连结果请参考 onNERtcEngineRejoinChannel 、onNERtcEngineDidDisconn...
NERtcEngine 扩展回调。
Definition: NERtcEngineDelegate.h:539
void onNERtcEngineAudioHasHowling()
检测到啸叫回调。 当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,自动触发该回调直至啸叫停止。App 应用层可以在收到啸叫回调时,提示用...
直播推流状态回调 如果需要监听直播推流状态,需要实现这个 protocol
Definition: NERtcEngineDelegate.h:386
本地视频数据采集回调 如果需要对采集数据做美颜等处理,需要实现这个 protocol。
Definition: NERtcEngineDelegate.h:417
外部视频渲染。
Definition: NERtcEngineDelegate.h:479
注册 SEI 观测者。 注册观测者并拉流成功后,当远端流发送 SEI,本端会收到 onNERtcEngineRecvSEIMsg 回调。
Definition: NERtcEngineDelegate.h:507