大家可能都用過支付寶的聲波支付。即兩個終端同一時候打開該功能,一個終端作為發送端send,一個終端作為接收端get,send將本終端上發出的請求信息依照約定規則的算法進行聲音編碼,並播放出來,get端接收到send發來的聲音數據,依照約定規則進行解碼,即獲得了對應的信息。
原理如上,事實上非常easy,就是用單頻率聲音信號對數據進行編碼,然后播放這些單頻率聲音,接收方在收到聲音后。識別出頻率,然后依據頻率解碼出數據。
最簡單的方法就是把0-9賦予特定的頻率,將須要傳輸的數據轉成十進制的數,分別賦予特定的頻率。然后發出聲音。
get端則接收該聲音,進行解碼,得到對應的真實數據就可以。
在實際應用中,須要對所傳輸的數據依照需求設計合理的數據格式,並統一到接收端。必要的時候須要增加加密算法。
在應用中實現須要用到下面幾個部分
send:數據組合、編碼(加密)、發聲
get:接收聲音、解碼(解密)、數據拆分
有一個project大家能夠參考,我傳到了csnd下載中,直接能夠執行聲波通信源碼