环信音视频功能学习总结

本文档详细介绍了如何在iOS项目中集成环信SDK,包括音视频功能的添加步骤,从证书制作、SDK导入、工程配置、页面逻辑编写到权限设置,以及实时音视频通话的实现和代理方法的使用。此外,还涵盖了隐私权限、初始化SDK、登录、创建聊天界面、1V1实时通话、离线消息处理和自定义视频数据等方面的内容。
摘要由CSDN通过智能技术生成

集成iOS SDk前的准备:

(如果需要推送消息,则要到苹果官网上制作证书,再到环信后台制作推送证书http://www.easemob.com/docs/ios/IOSSDKPrepare/#registerDeveloper)

注册环信开发者账号并创建后台应用,

登陆地址:https://console.easemob.com/?comeFrom=easemobHome

注册模式为开放注册,填写对应信息后得到AppKey

 

需要用到的内容:

EMCallManagerDelegate语音视频代理

AVFoundation音频输出

EMCallSession会话信息

 

音视频集成过程:

1、在环信官网申请一个AppKey

2、导入SDK

环信官方下载SDK和官方Demo,打开Xcode工程将下载的iOS_IM_SDK_V3.6.0文件夹下的EaseUI(UI框架)文件夹与HyphenateFullSDK(包含实时通话)文件夹或HyphenateSDK(不包含实时通话功能的SDK)添加到项目工程中(注意勾选Copy items if needed、Create groups与Add to targets)

用cocoapods添加HyphenateSDK(不包含实时通话功能的SDK)、HyphenateFullSDK(包含实时通话的SDK)和EaseUI(集成sdk到项目中)

#Lite版本(不带实时音视频通话功能) 

pod 'HyphenateLite' 

#Full版本(带实时音视频通话功能) 

pod 'Hyphenate'

在Podfile目录下执行指令pod install

注:用到一些Demo中的内容3rdparty、chatSDK、ChatUI

3、设置工程属性:

选择工程名-->TARGETS-->General-->Embedded Binaries添加Hyphenate.framework

HyphenateLite.framework

向General→Linked Frameworks andLibraies 中添加

HyphenateLite.framework(将【Required】改为【Optional】)

Hyphenate.framework(将【Required】改为【Optional】)

向Build Phases →Link Binary With Libraries 中添加依赖库:

CoreMedia.framework

AudioToolbox.framework

AVFoundation.framework

MobileCoreServices.framework

ImageIO.framework

libc++.dylib

libz.dylib

libstdc++.6.0.9.dylib

libsqlite3.dylib

libiconv.dylib

官方漏掉了的系统库:

CoreMotion.framework  

UserNotifications.framework 

AssetsLibrary.framework

MapKit.framework

Photos.framework

libbz2.1.0.dylib

后端云LeanCloud需要引入的依赖库:

libicucore.dylib

SystemConfiguration.framework

CoreTelephony.framework

CoreLocation.framework

(如果使用的是xcode7+,后缀为tbd)

(SDK不支持bitcode,Build Settings → 搜索bitcode →Enable Bitcode 中设置NO,此时编译不报错,集成成功)

4、编写页面逻辑,会话列表+聊天界面(环信有提供列表页,在EaseUI的子文件夹EMUIKit的子文件夹ViewController就已经包含了UI页面,找到EMiOSDemo→Class→Call+EMDemoHelper添加到自己的工程中,修改对应的EMDemoHelper工具类中的报错)

提醒:在集成时必须向工程导入Helper模块,然后在根据需求导入其他模块。

环信UI模块依赖于以下三方库:

pod 'Bugly'

pod 'Masonry'

pod 'MJRefresh'

pod 'MBProgressHUD', '~> 1.1.0'

pod 'SDWebImage', '~> 4.0'

pod 'SDWebImage/GIF'

pod 'FLAnimatedImage', '~> 1.0'

pod 'Hyphenate'

5、增加隐私权限,在工程info.plist文件里面添加隐私权限,用于Chat聊天模块发送图片,语音,视频,位置消息使用

Privacy - Photo Library Usage Description 需要访问您的相册

Privacy - Microphone Usage Description 需要访问您的麦克风(是否允许此使用你的麦克风

Privacy - Camera Usage Description 需要访问您的相机(是否允许使用你的相机)

Privacy - Location Always Usage Description 需要您的同意,才能在使用期间访问位置

Privacy - Location When In Use Usage Description 需要您的同意,才能始终访问位置

6、.pch配置(从官方的Demo中的.pch中粘贴即可)

#ifdef __OBJC__

#import <UIKit/UIKit.h>

#import <Foundation/Foundation.h>

//包含实时音视频功能SDK 的头文件

#import <Hyphenate/Hyphenate.h>

// UI 头文件

#import "EMHeaders.h"

#endif

#ifdef __OBJC__

#import <UIKit/UIKit.h>

#import <Foundation/Foundation.h>

//不包含实时音视频功能SDK 的头文件

#import <HyphenateLite/HyphenateLite.h>

// UI 头文件

#import "EMHeaders.h"

#endif

7、初始化SDK及登录环信服务器

设置Appdelegate,参考Appdelegate.m文件即可

在Appdelegate中导入#import <Hyphenate/Hyphenate.h>头文件,然后在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法中使用如下代码实现初始化即可:

// appkey替换成自己在环信管理后台注册应用中的appkey

EMOptions *options = [EMOptions optionsWithAppkey:@"appkey"];

// apnsCertName是证书名称,可以先传nil,等后期配置apns推送(苹果推送通知服务)时在传入证书名称

options.apnsCertName = nil;

[[EMClient sharedClient] initializeSDKWithOptions:options];

例如:

 EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"];

 options.apnsCertName = @"istore_dev&

要在Android应用程序中集成环信的EaseIMKit来发送语音,需要遵循以下步骤: 1. 在项目的build.gradle文件中添加环信库的依赖: ``` dependencies { // 环信IM SDK implementation 'com.hyphenate:chat-sdk:3.5.2' // 环信UI库 implementation 'com.hyphenate:chat-ui-sdk:3.5.2' } ``` 2. 在AndroidManifest.xml文件中声明必要的权限: ``` <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.VIBRATE" /> ``` 3. 在你的Activity中创建EaseChatFragment实例,并将其添加到布局中: ``` <fragment android:id="@+id/chat_fragment" android:name="com.hyphenate.easeui.ui.EaseChatFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/top_bar" android:background="@color/white" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:layout_anchor="@id/top_bar" app:layout_anchorGravity="bottom|center_horizontal" /> ``` 4. 在Activity中初始化EaseChatFragment,并设置相关属性: ``` private void initChatFragment() { // 获取EaseChatFragment实例 EaseChatFragment chatFragment = (EaseChatFragment) getSupportFragmentManager().findFragmentById(R.id.chat_fragment); // 设置聊天界面的标题 chatFragment.setTitle("Chat with xxx"); // 设置聊天对象的ID chatFragment.setArguments(getIntent().getExtras()); // 设置是否开启语音消息发送功能 chatFragment.setShowRecord(true); } ``` 5. 在EaseChatFragment中实现发送语音消息的逻辑: ``` // 在EaseChatFragment中重写onSendVoice方法 @Override public void onSendVoice(String filePath, int length) { // 创建语音消息 EMVoiceMessageBody messageBody = new EMVoiceMessageBody(new File(filePath), length); EMMessage message = EMMessage.createVoiceSendMessage(filePath, length, toChatUsername); // 发送语音消息 sendMessage(message); } ``` 以上就是使用环信的EaseIMKit实现Android发送语音消息的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值