IM即時通訊(五) 語音傳輸
前一篇說了檔案傳輸,那麼語音傳輸也是基於檔案傳輸的。 但是也不完全是,有兩種形式: 1、檔案 2、流媒體 比如QQ的"按住說話",發語音訊息,就是傳送音訊檔案,由附近的伺服器轉發。 但是QQ電話是基於流媒體的,視訊電話亦是基於流媒體的。 QQ按照他們自己定義的協議,以及規則在網路中進行資料的安全傳輸。 比如,Android平臺上是通過AudioRecord介面來實現PCM資料的採集,所以我們只需要再做些編解碼、網路傳輸、語音播放、UI互動等工作就行了。這裡涉及到OnTouch方法的使用,以及如果要實現視訊聊天也並非難事,原理也是一樣的,這裡需要注意的是,編解碼可能會涉及到JNI,所以不知道有此事的可以先去了解一下。如果要在外網能夠使用,可能還涉及到NAT打洞等,如果不是本地服務,而是外網伺服器的話,可以省去很多問題。
相關推薦
IM即時通訊(五) 語音傳輸
前一篇說了檔案傳輸,那麼語音傳輸也是基於檔案傳輸的。 但是也不完全是,有兩種形式: 1、檔案 2、流媒體 比如QQ的"按住說話",發語音訊息,就是傳送音訊檔案,由附近的伺服器轉發。 但是QQ電話是基於流媒體的,視訊電話亦是基於流媒體的。 QQ按
IM即時通訊(四) 檔案傳輸
服務端 package me.mxzf; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOExcep
IM即時通訊(二) 文字傳輸
服務端 package me.mxzf; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocke
IM即時通訊(三) 多客戶端文字傳輸之聊天功能
主要內容: 多執行緒的應用 讀寫分離思想 伺服器轉發 伺服器轉發是什麼呢? 可以假想伺服器是一個大型的資料中心,按照一定的規則,將資訊送到你想送去的地方。 而且,這裡的規則是由開發者自己定義的。 原始碼例項: 客戶端 package me.mxzf; imp
Spring Websocket+SockJS+STOMP 實現即時通訊(五)—— UserRegistryMessageHandler與NoOpMessageHandler
目錄 UserRegistryMessageHandler 處理來自其它應用服務的登錄檔廣播 定期廣播本地登錄檔 使用場景 使用條件 啟用配
Androi IPC程序間通訊(五)ContentProvider
程序間通訊之ContentProvider 一,介紹 1.底層實現也是Binder 2.其6個方法除了onCreate方法運行於主執行緒,其他4個方法由外界回撥並運行於Binder執行緒池。 3.註冊ContentProvider需要一個屬性android:authorities=“XX
Linux 程序間通訊(五)IPC的特性
1.識別符號和鍵 每個核心中的IPC結構(訊息佇列、訊號量或共享儲存段)都用一個非負整數的識別符號 (identifier)加以引用。 例如,要向一個訊息佇列傳送訊息或者從一個訊息佇列取訊息,只需要知道其佇列識別符號。 當一個IPC結構被建立,然後又被刪除時,與這種結構
Spring Websocket+SockJS+STOMP實現即時通訊(零)—— 要點
Spring Websocket+SockJS+STOMP 實現即時通訊(一)—— 疑問解答 Spring Websocket+SockJS+STOMP 實現即時通訊(二)—— 簡單的訊息代理 Spr
Linux學習之程序通訊(五)
言之者無罪,聞之者足以戒。 ——《詩序》 訊息佇列: 鏈式佇列: msqid ds 維護訊息佇列的結構體,佇列的第一個訊息指標msg_first,最後一個訊息指標msg_last 訊息中有一個成員指標next 每一個訊息中包含有哪些內容: Data
Spring Websocket+SockJS+STOMP 實現即時通訊(三)—— ChannelInterceptor與ExecutorChannelInterceptor
ChannelInterceptor: Message被髮送到執行緒池,在傳送動作執行前(後)攔截,發生在當前執行緒。 ExecutorChannelInterceptor: Message被髮送到執行緒池後,線上程池持有的新執行緒中,在Message
Spring Websocket+SockJS+STOMP 實現即時通訊(四)—— MessageChannel
兩種MessageChannel實現 TemporaryReplyChannel 用於接收單個回覆訊息的臨時通道。在整個斷點除錯過程中沒有追蹤到,所以在這裡不詳細說明。 ExecutorSubscribableChannel 正如字面上所表示的這樣Ex
論文筆記:語音情感識別(五)語音特徵集之eGeMAPS,ComParE,09IS,BoAW
一:LLDs特徵和HSFs特徵 (1)首先區分一下frame和utterance,frame就是一幀語音。utterance是一段語音,是比幀高一級的語音單位,通常指一句話,一個語音樣本。utterance由多幀語音組成,通常對一個utterance做分幀來得到多幀訊號。 (2)LLDs(low level
程序間的通訊(五)
編寫程式完成以下功能: 程序A向程序B傳送訊號,該訊號的附帶資訊為一個值為20的整數; 程序B完成接收訊號的功能,並且打印出訊號名稱以及隨著訊號一起傳送過來的整形變數值。 訊號傳送程序通過sigqueue函式能夠將更多的資訊傳送給訊號接受程序。 程式如下: #inc
Linux環境程序間通訊(五): 共享記憶體(下)(轉)
轉自http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html, 作者:鄭彥興系統呼叫mmap()通過對映一個普通檔案實現共享記憶體。系統V則是通過對映特殊檔案系統shm中的檔案實現程序間的共享記憶體通訊。也就是說,每個共享記憶體區域對
Linux環境程序間通訊(五): 共享記憶體(上)(轉)
轉自http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html, 作者:鄭彥興採用共享記憶體通訊的一個顯而易見的好處是效率高,因為程序可以直接讀寫記憶體,而不需要任何資料的拷貝。對於像管道和訊息佇列等通訊方式,則需要在內 核和使用者空間
Spring Websocket+SockJS+STOMP 實現即時通訊(六)—— SubProtocolWebSocketHandler
目錄 WebsocketHandler SubProtocolWebSocketHandler 四個重要成員變數 protocolHandlerLookup 子協議
Spring Websocket+SockJS+STOMP 實現即時通訊(四)—— MessageHandler
目錄 MessageHandler的作用 MessageHandler實現類 兩類MessageHandler有什麼區別? MessageHandler的作用 上一節中我們提到過,E
Android基於環信SDK開發IM即時聊天(一)
目前市面上我瞭解的做第三方即時聊天SDK的有兩家:環信、融雲,這裡我使用環信SDK來完成即時聊天的初步開發工作。 下面先奉上1張效果圖: 1、開發準備 首先要到環信官網註冊開發者賬號,目前只有企業賬號註冊,不過反正也不會去稽核企業資訊的正確與否,所
android 使用xmpp smack openfire實現即時通訊(一)
介紹: XMPP :XMPP(可擴充套件訊息處理現場協議)是基於可擴充套件標記語言(XML)的協議,它用於即時訊息(IM)以及線上現場探測。 smack:是一個開源包,易於使用的XMPP(jabber)客戶端類庫 openfire :作為伺服器提供服務。 ope
使用nodeJs+web Socket構建即時通訊(WebIM)
在文章的開頭,我要解釋一下,為什麼不直接使用web Socket實現即時通訊,因為一部分瀏覽器並不相容web Socket,導致即時通訊在這些瀏覽器上無法正常使用,所以才需要用到nodeJs裡封裝好webSocket協議的socket.io包模組來提供不相容we