av一区二区三区在线观看_久久久久国产一区二区三区_伊人春色在线播放_欧美亚洲国产一区_九九热在线免费视频_久久视频国产

1、初始化及登陸

? 在程序入口初始化SDK并設置代理 - 代理類設置最好放在didFinishLaunchingWithOptions中,代碼示例如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
	[ECDevice sharedInstance].delegate = [DeviceDelegateHelper sharedInstance];
	return YES;
}
                    

代理類示例:
DeviceDelegateHelper.h文件

 //代理類.h文件如下   

import  //創建單例
import "ECDeviceHeaders.h" 
@interface DeviceDelegateHelper : NSObject

/**

 *@brief 獲取DeviceDelegateHelper單例句柄

 */

+(DeviceDelegateHelper*)sharedInstance; 

//代理類.m文件中需要實現ECDeviceDelegate的回調函數,代碼示例如下:

import "DeviceDelegateHelper.h"
import "AppDelegate.h"
//如需使用IM功能,需實現ECChatDelegate類的回調函數。

//如需使用實時音視頻功能,需實現ECVoIPCallDelegate類的回調函數。

//如需使用音視頻會議功能,需實現ECMeetingDelegate類的回調函數。

                    

DeviceDelegateHelper.m文件

第一步:創建單例方法

+(DeviceDelegateHelper*)sharedInstance

{

    static DeviceDelegateHelper *devicedelegatehelper;

    static dispatch_once_t devicedelegatehelperonce;

    dispatch_once(&devicedelegatehelperonce, ^{

        devicedelegatehelper = [[DeviceDelegateHelper alloc] init];  

    });

    return devicedelegatehelper;

} 

第二步:連接云通訊的服務平臺,實現ECDelegateBase代理的方法

/**

 @brief 連接狀態接口

 @discussion 監聽與服務器的連接狀態 V5.0版本接口

 @param state 連接的狀態

 @param error 錯誤原因值

 */

-(void)onConnectState:(ECConnectState)state failed:(ECError*)error {

    switch (state) {

        case State_ConnectSuccess://連接成功

            [[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_onConnected object:[ECError errorWithCode:ECErrorType_NoError]];

            break;

        case State_Connecting://正在連接

            [[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_onConnected object:[ECError errorWithCode:ECErrorType_Connecting]];

            break;

        case State_ConnectFailed://失敗

            [[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_onConnected object:error];

            break;

        default:

            break;

    }

}

第三步 :各功能回調函數實現

1. 如需使用im功能,需實現ECChatDelegate類的回調函數。

/**

 @brief 客戶端錄音振幅代理函數

 @param amplitude 錄音振幅

 */

-(void)onRecordingAmplitude:(double) amplitude;

 

/**

 @brief 接收即時消息代理函數

 @param message 接收的消息

 */

-(void)onReceiveMessage:(ECMessage*)message;

 

/**

 @brief 離線消息數

 @param count 消息數

 */

-(void)onOfflineMessageCount:(NSUInteger)count;

 

/**

 @brief 需要獲取的消息數

 @return 消息數 -1:全部獲取 0:不獲取

 */

-(NSInteger)onGetOfflineMessage;

 

/**

 @brief 接收離線消息代理函數

 @param message 接收的消息

 */

-(void)onReceiveOfflineMessage:(ECMessage*)message;

 

/**

 @brief 離線消息接收是否完成

 @param isCompletion YES:拉取完成 NO:拉取未完成(拉取消息失敗)

 */

-(void)onReceiveOfflineCompletion:(BOOL)isCompletion;

/**

 @brief 接收群組相關消息

 @discussion 參數要根據消息的類型,轉成相關的消息類;

             解散群組、收到邀請、申請加入、退出群組、有人加入、移除成員等消息

 @param groupMsg 群組消息

 */

-(void)onReceiveGroupNoticeMessage:(ECGroupNoticeMessage *)groupMsg;

 

2.如需使用音視頻通話功能,需實現ECVoIPCallDelegate類的回調函數。

/**

 @brief 有呼叫進入

 @param callid      會話id

 @param caller      呼叫人

 @param callerphone 被叫人手機號

 @param callername  被叫人姓名

 @param calltype    呼叫類型

 */

- (NSString*)onIncomingCallReceived:(NSString*)callid withCallerAccount:(NSString *)caller withCallerPhone:(NSString *)callerphone withCallerName:(NSString *)callername withCallType:(CallType)calltype;

 

/**

 @brief 呼叫事件

 @param voipCall 電話實體類的對象

 */

- (void)onCallEvents:(VoIPCall*)voipCall;

 

/**

 @brief 收到dtmf

 @param callid 會話id

 @param dtmf   鍵值

 */

- (void)onReceiveFrom:(NSString*)callid DTMF:(NSString*)dtmf;

 

/**

 @brief 視頻分辨率發生改變

 @param callid       會話id

 @param voip         通訊號

 @param isConference NO 不是, YES 是

 @param width        寬度

 @param height       高度

 */

- (void)onCallVideoRatioChanged:(NSString *)callid andVoIP:(NSString *)voip andIsConfrence:(BOOL)isConference andWidth:(NSInteger)width andHeight:(NSInteger)height;

 

/**

 @brief 收到對方切換音視頻的請求

 @param callid  會話id

 @param requestType 請求音視頻類型 視頻:需要響應 音頻:請求刪除視頻(不需要響應,雙方自動去除視頻)

 */

- (void)onSwitchCallMediaTypeRequest:(NSString *)callid withMediaType:(CallType)requestType;

 

/**

 @brief 收到對方應答切換音視頻請求

 @param callid   會話id

 @param responseType 回復音視頻類型

 */

- (void)onSwitchCallMediaTypeResponse:(NSString *)callid withMediaType:(CallType)responseType;

 

3.如需使用音視頻會議功能,需實現ECMeetingDelegate類的回調函數。

/**

 @brief 實時對講通知消息

 @param msg 實時對講消息

 */

-(void)onReceiveInterphoneMeetingMsg:(ECInterphoneMeetingMsg *)msg;

 

/**

 @brief 語音群聊通知消息

 @param msg 語音群聊消息

 */

-(void)onReceiveMultiVoiceMeetingMsg:(ECMultiVoiceMeetingMsg *)msg;

 

//多路視頻通知消息

-(void)onReceiveMultiVideoMeetingMsg:(ECMultiVideoMeetingMsg *)msg;

 

//有會議呼叫邀請。邀請用戶時,呼叫回調接口,與點對點外呼接口不一致,只有會議邀請才會回調這個接口,其他情況均使用點對點呼叫回調接口

-(NSString*)onMeetingCallReceived:(NSString*)callid withCallType:(CallType)calltype withMeetingData:(NSDictionary*)meetingData;

                    

? 登錄—具體代碼如下:

//初始化登錄信息類ECLoginInfo實例(ECLoginInfo已經包含在SDK包里,不要用戶創建)
//默認模式:對AppKey、AppToken和userName鑒權
ECLoginInfo * loginInfo = [[ECLoginInfo alloc] init];
loginInfo.username = @"自定義賬號";//用戶登錄app的用戶id即可。
loginInfo.appKey = @"appid";
loginInfo.appToken = @"apptoken";
loginInfo.authType = LoginAuthType_NormalAuth;//默認方式登錄
loginInfo.mode = LoginMode_InputPassword;
[[ECDevice sharedInstance] login:loginInfo completion:^(ECError *error){
    if (error.errorCode == ECErrorType_NoError) {
       //登錄成功
    }else{
       //登錄失敗
    }
}];


//密碼模式:對AppKey、userName和userPassword鑒權
ECLoginInfo * loginInfo = [[ECLoginInfo alloc] init];
loginInfo.username = @"通訊賬號";
loginInfo.appKey = @"appid";
loginInfo. userPassword= @"通訊密碼";
loginInfo.authType = LoginAuthType_PasswordAuth;//密碼方式登錄
loginInfo.mode = LoginMode_InputPassword;
[[ECDevice sharedInstance] login:loginInfo completion:^(ECError *error){
    if (error.errorCode == ECErrorType_NoError) {
       //登錄成功
    }else{
       //登錄失敗
    }
}];


// 鑒權模式:MD5 Token認證方式,服務器認證appKey、username、timestamp、MD5Token字段
     * (該鑒權方式是最安全的方式,用戶在自己的服務器根據規則生成MD5,在不暴露apptoken的情況下進行鑒權,且生成的MD5 Token在平臺上有失效時間)

ECLoginInfo * loginInfo = [[ECLoginInfo alloc] init];
loginInfo.username = @"自定義賬號";
loginInfo.appKey = @"appid";
loginInfo.timestamp = "時間戳";//yyyyMMddHHmmss 
loginInfo.MD5Token = "MD5串";//MD5(appid+username+timestamp+apptoken)
loginInfo.authType = LoginAuthType_MD5TokenAuth;// 鑒權模式方式登錄
loginInfo.mode = LoginMode_InputPassword;
[[ECDevice sharedInstance] login:loginInfo completion:^(ECError *error){
    if (error.errorCode == ECErrorType_NoError) {
       //登錄成功
    }else{
       //登錄失敗
    }
}];

                    

登錄環境:
登錄環境分為:生產(正式)環境和沙盒環境。主要是推送證書不一樣。如果你是在開發環境注冊的推送,相對應就需要選擇在沙盒環境上登錄;如果你是生產環境注冊的推送,相對應就需要選擇在生產(正式)環境上登錄。

注:提供此方法僅用于客戶測試IOS離線推送功能,在測試完成后請及時去掉,防止環境不同導致的通信障礙。

功能:切換服務器環境

調用登錄接口前,調用該接口切換服務器環境;不調用該函數,默認使用的是生產環境;

參數:isSandBox 是否沙盒環境

      是否成功 0:成功 非0失敗

-(NSInteger)SwitchServerEvn:(BOOL)isSandBox;

                    
主站蜘蛛池模板: 天堂视频中文在线 | 99re热精品视频 | 日本成人中文字幕在线观看 | 91免费在线看 | 99热精品在线 | 日本在线中文 | www.一级毛片 | 久在线精品视频 | 国产精品一区二区三区久久 | 在线一区二区三区 | 日韩在线观看中文字幕 | 亚洲电影第1页 | 亚洲xx在线 | 国产成人精品免费视频大全最热 | av天天干 | 在线视频国产一区 | 91av在线免费观看 | 国产丝袜av| 亚洲免费一区二区 | 久久久不卡网国产精品一区 | 91在线观看免费视频 | 亚洲成人国产精品 | 亚洲精品在线免费观看视频 | 国产精品日日夜夜 | 欧美在线视频一区二区 | 久久精品亚洲精品国产欧美kt∨ | 伊人影院99 | 国产精品亚洲一区 | 二区高清 | 精品久久久久一区二区国产 | 日韩一级免费观看 | 欧美性高潮 | 正在播放国产精品 | 伊人手机在线视频 | 国产精品久久久久久婷婷天堂 | 日本激情一区二区 | 奇米影视77 | 视频一区二区中文字幕日韩 | 成人免费在线视频 | 羞羞视频网站免费看 | 美女天天干天天操 |