// // MoonChatPlatform.h // FWorkSDK // // Created by muen on 2021/2/27. // #import #import NS_ASSUME_NONNULL_BEGIN typedef enum : NSUInteger { MoonChatVoice = 0, MoonChatVideo = 1, } MoonChatType; typedef enum : NSUInteger { MoonChatViewTypeSendAudio = 1, MoonChatViewTypeSendVideo, MoonChatViewTypeReceiveAudio, MoonChatViewTypeReceiveVideo, } MoonChatViewType; typedef enum : NSUInteger { CallStatusSuccess = 0, CallStatusError = 1, CallStatusBusy = 7, CallStatusOffline = 8, } CallStatus; /// 联网类型 typedef NS_ENUM(NSInteger, LBVACurrentType) { LBVACurrentTypeNormal = 1, LBVACurrentTypeReceiced,//收到 LBVACurrentTypeInviting,//邀请中 LBVACurrentTypeWaiting, LBVACurrentTypeCalling,//通话中 }; typedef void (^ _Nullable ITCallBlock)(CallStatus); typedef void (^ _Nullable UserOnlineBlock)(BOOL); //音视频跳转 @protocol chatAVCallDelegate - (void)chatAVCallEventCallBack:(MoonChatViewType)avType; @end @protocol chatingEventDelegate //挂断事件 - (void)chatAVCloseEventCallBack:(int)type; //拨打时,初始化预览自己的摄像头信息 - (void)chatVideoPreviewInit:(AVCaptureSession *)session; //接通了,初始化视频相关的信息 - (void)chatVideoSessionInit:(AVCaptureSession *)session; //接通了,初始化音频相关信息 - (void)chatAudioInit:(BOOL)isCalling; //图像数据开始收到了 - (void)chatVideoDataReceived; @end @protocol chatNetWorkStateDelegate //yes 登录成功,no登录失败 - (void) chatNetWorkConnect:(BOOL)isConnect; @end @interface MoonChatPlatform : NSObject @property(nullable, nonatomic, assign) id avCallDelegate; @property(nullable, nonatomic, assign) id avChatingDelegate; @property(nullable, nonatomic, assign) id chatNetDelegate; //返回当前SDK是否有用户登录 @property(nonatomic, assign, readonly) BOOL isConnected; //当前通话的对方id @property(nullable, nonatomic, copy) NSString *partnerUid; //当前通话状态 @property(nonatomic, assign) LBVACurrentType curType; //判断是否传入自己的预览视图 @property(nonatomic, assign) BOOL isMySurfaceOK; // 获取单例对象 + (MoonChatPlatform *) getInstance; // 初始化系统 + (int) initSDK:(int)mode; + (int) initSDKWithAppid:(NSString *)appid appsecret:(NSString *)appsecret; // 连接服务器 + (void)connectServer __deprecated_msg("废弃,不需要手动调用连接。"); + (int) connectServerAddress:(NSString*)address port:(int)port __deprecated_msg("废弃,不需要手动调用连接。"); // 登录系统 + (int) loginUserName:(NSString*)uName psssword:(nullable NSString*)password; // 1 video 0 voice + (void)startCalling:(NSString *)partUid phoneType:(MoonChatType)type callBlock:(ITCallBlock)block; + (void)startCalling:(NSString *)partUid myNick:(NSString *)nick phoneType:(MoonChatType)type callBlock:(ITCallBlock)block; + (void)setVideoSurface:(NSObject *)surface isMine:(BOOL)ismine; //挂断 + (void)closeChat; //接听 + (void)answerChat; //取消 + (void)cancelChat; //拒绝 + (void)refuseChat; //切换语音通话 + (void)changetoVoice; //切换语音通话并接听 + (void)changetoVoicePickUp; //切换摄像头 + (void)switchCamera; /** * 设置声音外放还是听筒播放 * * @param isloud YES : 外发,NO: 听筒 */ + (void)changeSoundType:(BOOL)isloud; /** * 设置静音,对方听不到本机声音 */ + (void)setMute:(BOOL)ismute; /** * 检查指定用户uid是否在线 * * @param uid 检查的用户名 * * @param blcok 在线状态回调 */ + (void)checkUserOnline:(NSString *)uid userOnlineBlock:(UserOnlineBlock)blcok; /** * 注销视频聊天账号 */ + (void) logoutChatSDK; /** * 释放视频服务资源 */ + (void) destroy; @end NS_ASSUME_NONNULL_END