欧美日韩专区-欧美日韩中文一区二区三区-欧美日韩中文一区-欧美日韩中文国产一区二区三区-日韩成人在线免费视频

1、初始化及登陸

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

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

代理類示例:
DeviceDelegateHelper.h文件

 //代理類.h文件如下   

import  //創(chuàng)建單例
import "ECDeviceHeaders.h" 
@interface DeviceDelegateHelper : NSObject

/**

 *@brief 獲取DeviceDelegateHelper單例句柄

 */

+(DeviceDelegateHelper*)sharedInstance; 

//代理類.m文件中需要實現(xiàn)ECDeviceDelegate的回調(diào)函數(shù),代碼示例如下:

import "DeviceDelegateHelper.h"
import "AppDelegate.h"
//如需使用IM功能,需實現(xiàn)ECChatDelegate類的回調(diào)函數(shù)。

//如需使用實時音視頻功能,需實現(xiàn)ECVoIPCallDelegate類的回調(diào)函數(shù)。

//如需使用音視頻會議功能,需實現(xiàn)ECMeetingDelegate類的回調(diào)函數(shù)。

                    

DeviceDelegateHelper.m文件

第一步:創(chuàng)建單例方法

+(DeviceDelegateHelper*)sharedInstance

{

    static DeviceDelegateHelper *devicedelegatehelper;

    static dispatch_once_t devicedelegatehelperonce;

    dispatch_once(&devicedelegatehelperonce, ^{

        devicedelegatehelper = [[DeviceDelegateHelper alloc] init];  

    });

    return devicedelegatehelper;

} 

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

/**

 @brief 連接狀態(tài)接口

 @discussion 監(jiān)聽與服務器的連接狀態(tài) V5.0版本接口

 @param state 連接的狀態(tài)

 @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;

    }

}

第三步 :各功能回調(diào)函數(shù)實現(xiàn)

1. 如需使用im功能,需實現(xiàn)ECChatDelegate類的回調(diào)函數(shù)。

/**

 @brief 客戶端錄音振幅代理函數(shù)

 @param amplitude 錄音振幅

 */

-(void)onRecordingAmplitude:(double) amplitude;

 

/**

 @brief 接收即時消息代理函數(shù)

 @param message 接收的消息

 */

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

 

/**

 @brief 離線消息數(shù)

 @param count 消息數(shù)

 */

-(void)onOfflineMessageCount:(NSUInteger)count;

 

/**

 @brief 需要獲取的消息數(shù)

 @return 消息數(shù) -1:全部獲取 0:不獲取

 */

-(NSInteger)onGetOfflineMessage;

 

/**

 @brief 接收離線消息代理函數(shù)

 @param message 接收的消息

 */

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

 

/**

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

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

 */

-(void)onReceiveOfflineCompletion:(BOOL)isCompletion;

/**

 @brief 接收群組相關消息

 @discussion 參數(shù)要根據(jù)消息的類型,轉(zhuǎn)成相關的消息類;

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

 @param groupMsg 群組消息

 */

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

 

2.如需使用音視頻通話功能,需實現(xiàn)ECVoIPCallDelegate類的回調(diào)函數(shù)。

/**

 @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 視頻分辨率發(fā)生改變

 @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.如需使用音視頻會議功能,需實現(xiàn)ECMeetingDelegate類的回調(diào)函數(shù)。

/**

 @brief 實時對講通知消息

 @param msg 實時對講消息

 */

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

 

/**

 @brief 語音群聊通知消息

 @param msg 語音群聊消息

 */

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

 

//多路視頻通知消息

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

 

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

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

                    

? 登錄—具體代碼如下:

//初始化登錄信息類ECLoginInfo實例(ECLoginInfo已經(jīng)包含在SDK包里,不要用戶創(chuàng)建)
//默認模式:對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字段
     * (該鑒權方式是最安全的方式,用戶在自己的服務器根據(jù)規(guī)則生成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{
       //登錄失敗
    }
}];

                    

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

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

功能:切換服務器環(huán)境

調(diào)用登錄接口前,調(diào)用該接口切換服務器環(huán)境;不調(diào)用該函數(shù),默認使用的是生產(chǎn)環(huán)境;

參數(shù):isSandBox 是否沙盒環(huán)境

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

-(NSInteger)SwitchServerEvn:(BOOL)isSandBox;

                    
主站蜘蛛池模板: 一区二区视频 | www.99com | 亚洲精品乱码久久久久久v 亚洲国内精品 | 久热国产视频 | 在线免费观看羞羞视频 | 在线免费色 | 久热综合 | 色五月激情五月 | 台湾一级毛片免费播放 | 亚洲一区二区三区视频 | 国产在线观看一区 | 亚洲精品欧洲久久婷婷99 | 在线国产区| 国内精品综合九九久久精品 | 成人区精品一区二区毛片不卡 | 亚洲第一区视频在线观看 | 麻豆精品 | 久久免费视频6 | 亚洲精品第一国产综合野 | 国产亚洲精品美女 | 色激情综合 | 丁香花五月婷婷开心 | 激情六月婷婷开心丁香开心 | 国产免费一级在线观看 | 亚洲爱爱爱 | 在线亚洲精品国产成人二区 | 最近国语免费看 | 五月婷婷六月婷婷 | 四虎永久网站 | 国产色视频在线 | 日韩精品视频免费在线观看 | 亚洲欧美日本综合一区二区三区 | 久久久久久国产精品免费免费 | 在线播放人成午夜免费视频 | 亚洲一区二区三区久久久久 | 欧美日韩国产亚洲一区二区 | 国产日韩欧美综合 | 国色天香免费视频www | 欧美激情一区二区三区蜜桃视频 | 玖玖国产精品 | 亚洲免费观看网站 |