1. 程式人生 > >iOS 基於環信SDK實現即時通訊-語音、視訊聊天

iOS 基於環信SDK實現即時通訊-語音、視訊聊天

這裡建立的專案是在文字聊天專案:http://blog.csdn.net/create_pro/article/details/62420040基礎上新增的功能,所以可能需要先去連結文章地址檢視整合過程,具體專案連結在下面,這裡只介紹使用環信SDK整合語音、視訊通話:
需要用到的內容有:

EMCallManagerDelegate 語音視訊代理
AVFoundation 音訊輸出
EMCallSession 會話資訊

在info.plist裡面新增:

<key>NSMicrophoneUsageDescription</key>
    <string>是否允許此App使用你的麥克風?</string
>
<key>NSCameraUsageDescription</key> <string>是否允許此App使用你的相機?</string>

新增代理方法為:

    [[EMClient sharedClient].callManager addDelegate:self delegateQueue:nil];

使用到的代理方法主要有:
- (void)callDidReceive:(EMCallSession *)aSession
//使用者A撥打使用者B使用者B會收到這個回撥、你希望在哪個頁面可以監聽被呼叫就把這個方法寫在裡面,記得遵守協議;

  • (void)callDidConnect:(EMCallSession *)aSession
    //通話通道完成,可以在這裡建立音訊輸出裝置和環境AVAudioSession

  • (void)callDidAccept:(EMCallSession *)aSession
    //使用者B同意使用者A的通話請求後,使用者A會收到這個回撥

  • (void)callDidEnd:(EMCallSession )aSession reason:(EMCallEndReason)aReason error:(EMError )aError
    //使用者A或使用者B結束通話後對方會收到這個回撥。或者通話出現錯誤、雙方都會收到該回調

建立一個語音或者視訊通話:

/*
*  @param aType            通話型別
 *  @param aRemoteName      被呼叫的使用者(不能與自己通話)
 *  @param aExt             通話擴充套件資訊,會傳給被呼叫方
 *  @param aCompletionBlock 完成的回撥
*/
[[EMClient sharedClient].callManager startCall:aType remoteName:aRemoteName ext:aExt completion:^(EMCallSession *aCallSession, EMError *aError) {

            if (!aError) {//建立成功
            }else{
            }

        }];

同意別人的會話邀請:

/*
_callSession.callId 會話ID
*/
 [[EMClient sharedClient].callManager answerIncomingCall:_callSession.callId];

結束通話:

/*
_callSession.callId 會話ID
aReason     結束通話原因 (EMCallEndReason) 
*/
[[EMClient sharedClient].callManager endCall:_callSession.callId reason:aReason];

上面這些東西已經可以完成一個簡單的語音、視訊通話需求,具體實現可以到下面連結下載檢視

相關推薦

iOS 基於SDK實現即時通訊-語音視訊聊天

這裡建立的專案是在文字聊天專案:http://blog.csdn.net/create_pro/article/details/62420040基礎上新增的功能,所以可能需要先去連結文章地址檢視整合過程,具體專案連結在下面,這裡只介紹使用環信SDK整合語音、視訊

android-使用SDK開發即時通訊功能及原始碼下載

最近專案中整合即時聊天功能,挑來揀去,最終選擇環信SDK來進行開發,選擇環信的主要原因是介面方便、簡潔,說明文件清晰易懂。文件有android、ios、和後臺伺服器端,還是非常全的。 環信官網:http://www.easemob.com/ 本篇文章目的主要

整合sdk步驟(即時通訊)

步驟:一,從環信官網註冊獲得appkey(沒有key 無法接入環信伺服器)二, 新增依賴   build.gradle(project)allprojects { repositories { google() jcenter()

Android基於SDK開發IM即時聊天(一)

目前市面上我瞭解的做第三方即時聊天SDK的有兩家:環信、融雲,這裡我使用環信SDK來完成即時聊天的初步開發工作。 下面先奉上1張效果圖: 1、開發準備 首先要到環信官網註冊開發者賬號,目前只有企業賬號註冊,不過反正也不會去稽核企業資訊的正確與否,所

sdk實現登入註冊功能(第三方通訊

最近寫聊天軟體,需要第三方通訊實現聊天功能,下面再分享一下環信sdk整合(個人心得:我是個新手,其實整合環信sdk我之前用了接近一個星期參考官方文件,也百度瞭解了很多,最後整合失敗了,,實在是心疼就放棄了環信,接著去學極光sdk的整合,極光弄成功之後再回來繼續研究環信的,給我

android-使用SDK開發即時功能及源代碼下載

聊天功能 實時 成就 soft cat xtend 技術 easy www. 近期項目中集成即時聊天功能。挑來揀去,終於選擇環信SDK來進行開發,選擇環信的主要原因是接口方便、簡潔。說明文檔清楚易懂。文檔有android、ios、和後臺server端。還

iOS開發之使用XMPPFramework實現即時通訊(二)

上篇的部落格只是本篇的引子,本篇部落格就給之前的微信加上即時通訊的功能,主要是對XMPPFramework的使用。本篇部落格中用到了Spark做測試,當然也少不了Openfire伺服器,在這就不詳述Openfire的安裝過程了(網上的教程還是蠻多的),Openfire的安

iOS開發之使用XMPPFramework實現即時通訊(一)

關於XMPP的理論介紹在本篇部落格中就不做贅述了,如何在我們之前的微信中加入XMPP協議來實現通訊呢?下面將會介紹一下XMPP的基本的知識,讓我們的微信可以實現互聯通訊。要做的準備工作是要有伺服器支援XMPP協議,然後通過spark註冊個測試賬號,最後就可以通過XMPP用

PHP 使用 swoole 實現即時通訊 demo,以及聊天實現方式

服務端程式碼 ini_set('display_errors', 1); error_reporting(E_ALL); $ws = new swoole_websocket_server("0.0.0.0", 8080); //監聽WebSocket連線開啟事件  

mqtt協議實現即時通訊-activemq nginx.支援JS,JAVA,微小程式

MQTT協議通訊   簡述:            使用MQTT協議實現後臺推送、及時通訊等功能。本案例實現了web-js端、微信小程式端、Java client端、Java serv

Android利用SDK 3.x實現1對1視訊通話

通過實現這個小功能,可以讓大家快速瞭解該怎麼整合聊天,通話功能。環信實現即時通訊都提供了兩套(貌似融雲也是的),一套簡版api包括所有功能,另一套除了應有的功能外還有更全的介面和邏輯(只需要簡單的幾行程式碼就能實現聊天的)。這種情況得看大家的工作需要了,如果介面需要自己寫的

基於實現android客戶端客服聊天功能

本來類似於這種第三方的功能是沒有必要寫部落格的,但是由於環信客服功能的文件實在版本過舊,所以在此記錄下,希望能給大家帶來一點便利。 工具:androidStudio 第1步: 註冊一個環信的賬號,地址如下,有了直接登入就可以了。https://kefu.eas

PHP + Redis 訂閱/發布 實現即時通訊功能

PHP Redis 訂閱/發布 即時通訊 最近比較忙,沒時間更新博客,先暫時記下,待後續補充 Redis Sub/Pub 訂閱/發布 待編輯 PHP + Redis 訂閱/發布 實現即時通訊 待編輯 PHP + Redis 訂閱/發布 實現即時通訊功能

ios-swift-整合

說明:目前swift環信整合 通過pod方式整合後開啟聊天介面會一直報如下的錯,目前還沒找到解決方式,但是同手動整合 sdk以及EaseUI就可以正常使用,本片部落格,介紹的就是通過手動方式整合,如果哪個同僚解決了通過 pod方式整合報的錯誤,請聯絡我:我的微信:13022861472

android整合sdk出現app:transformClassesWithDexForDebug.” ---finished with non-zero exit value 2解決方法

android整合環信sdk出現app:transformClassesWithDexForDebug.” —finished with non-zero exit value 2解決方法 通常是架包衝突問題。 首先找到Gradle Scripts 然後找到 解決: impleme

nodejs 實現即時通訊 聊天室demo

需要安裝 nodejs-Websocket 服務端 var ws = require("nodejs-websocket"); console.log("開始建立連線...") var game1 = null,game2 = null , game1Ready =

Spring Websocket+SockJS+STOMP實現即時通訊(零)—— 要點

Spring Websocket+SockJS+STOMP 實現即時通訊(一)—— 疑問解答 Spring Websocket+SockJS+STOMP 實現即時通訊(二)—— 簡單的訊息代理 Spr

Spring Websocket+SockJS+STOMP 實現即時通訊(三)—— ChannelInterceptor與ExecutorChannelInterceptor

ChannelInterceptor: Message被髮送到執行緒池,在傳送動作執行前(後)攔截,發生在當前執行緒。 ExecutorChannelInterceptor: Message被髮送到執行緒池後,線上程池持有的新執行緒中,在Message

sdk指定聊天列子

public class Login extends Activity implements Button.OnClickListener { EditText account, password; Button login; handle hn;

Spring Websocket+SockJS+STOMP 實現即時通訊(四)—— MessageChannel

兩種MessageChannel實現 TemporaryReplyChannel 用於接收單個回覆訊息的臨時通道。在整個斷點除錯過程中沒有追蹤到,所以在這裡不詳細說明。 ExecutorSubscribableChannel 正如字面上所表示的這樣Ex