Android語音通話實現方案及相關技術介紹

2021-07-24 13:36:58 字數 2175 閱讀 5188

語音通話資料

iminstant message所涉及的協議

編碼方式

伺服器端

音訊採集

涉及到通訊協議,還有編譯碼的問題。(我目前了解到這兩個方面)。查詢資料知道,現在的主流lte語音解決方案包括三種:雙待機、csfb、volte三種:
csfallback(csfb):

是lte終端通過電路域使用語音業務的一種方案,終端平時駐留在lte網路,使用lte資料業務,當發起語音呼叫或者接收到語音呼叫的時候,終端回落到2g/3g電路域進行語音呼叫,結束後再返回lte。

雙待機:

具備雙待機能力的lte終端可以同時再lte和2g/3g電路域工作,即同時在lte網路上使用資料業務, 在2g/3g電路域上使用語音業務,實現資料業務的併發,無需回落。

volte:

是架構在lte網路上全ip條件下的端到端語音方案。volte的語音作為ip資料傳輸,無需2g/3g網,全部業務承載於lte網路上,可實現資料與語音業務在同一網路下的統一。相對於現有技術的2g/3g網路,通過引入高畫質編譯碼等技術,volte可擁有比2g/3g語音,以及時下流行的ott語音業務更好的使用者體驗。同時,當終端離開lte的覆蓋區,volte能夠將lte上的語音呼叫切換到2g/3g網路山,保證語音呼叫的連續性。

會話初始化協議(session initiation protocol, rfc3261),是乙個基於文字的處於應用層的控制協議,可以用來建立,修改和終止會話。它是多**框架中的一部分,它與rtp(實時資料傳輸協議)、rstp(實時流協議)、sdp(會話描述協議)構成乙個完整的多**架構,sip是其中的交通工具。它是基於tcp/ip協議進行傳輸的,因此可以通過udp或者tcp傳輸。

。xml流的生命週期裡,初始化實體可以使用xml流傳送很多xml元素給接收實體,完成交換資訊,接收實體必需發起乙個反向的握手(應答流)。

xml節:xml節從會話的一端傳送具有語義的結構化資料單元到另一端。它從開始標籤到結束標籤,位於的子層。作為乙個語義單元,協議定義了三個xml節:節,節,節。他們也是xmpp協議的三種基本的通訊機制:

此處不對這兩個協議進行過多介紹

opus是乙個有損聲音編碼的格式,低位元速率下opus比曾經的he aac格式又是大很多,中位元速率下可以與壓縮位元速率比它高出30%左右的aac格式,高位元速率下更是接近於原始音訊。因此非常適合用於voip語音**的專案。

這種編譯碼的壓縮比率還是比較大的,大概在1/10至1/9之間。也就是說假如每秒20kb的語音資料,編碼後就是2kb/s,比較小,利於網路傳輸。

即時通訊伺服器——openfire,可以實現同時登陸多個客戶端,並且可以併發的連線到乙個伺服器上。openfire使用xmpp協議,採用xmpp協議的im(instant messaging)客戶端軟體可以登入伺服器。然後,伺服器對連線通過認證的客戶端建立會話,該會話負責伺服器端和客戶端之間的通訊。openfire伺服器建立乙個個執行緒來響應每個使用者的請求,為了使伺服器的執行效率能夠提公升,openfire通過執行緒池建立和管理執行緒。通過openfire接收到的使用者請求的數量,執行緒池可以自動調整大小。

在android中採集音訊的api是android.media.audio.record類。

public

audiorecord(

int audiosource, //音訊源,從麥克風採集所以引數值為mic

int sampleratelnhz, //取樣率,每秒取樣次數,取樣率越高,音質越好,一般是44100,不同取樣率的值,對飲不同裝置的支援。

int channelconfig, //聲道設定,android支援雙聲道和單聲道,分別為stereo和mono

int audioformat, //編碼制式和取樣大小,android一般使用pcm編碼,大小一般為16bit或者8bit

int buffersizeinbytes //採集資料緩衝區大小

)

語音通話是「地漏」還是「風口」?

近日發布的中國移動業績顯示,2015年,中國移動的資料業務收入達3034.25億元,首次超過語音業務收入 2618.96億元 佔通訊服務收入的比例上公升至52 而語音業務收入則同比下降了16.5 不管我們願不願意,多年來一直是運營商收入頭把交椅的語音通話收入,終於被資料業務收入反超,這已經是不爭的事...

Android 預設通話應用

專案中有個彩鈴需求,所以用到了預設通話,在android10之後,請求預設通話許可權發生了改變,故整理 關於替換系統的預設通話,需要提供如下幾點 1.提供uiactivity,在登錄檔中需要有如下配置 2.提供service,在登錄檔中也需要如下配置 class phonecallservice e...

語音邊錄邊傳實現方案

這裡的語音是指即時通訊中的語音頻息,語音邊錄邊傳就是在語音的錄製過程中上傳語音檔案而不是等錄製完成再一次性上傳,這麼做的目的是減少檔案上傳時間,加快訊息傳送速度。一般一條語音頻息從使用者按下錄音鍵到成功傳送大致流程如下 1 開始錄音,將接收到的語音轉化成音訊資料流,這一步通常可以呼叫系統方法完成 a...