極光推送+科大訊飛實現推送消息語音播放功能實現

      上次說到科大訊飛的語音集成,至於基礎的步驟就不在這裏細說,直接一把梭,先做出來demo再說,如果說咱們的

科大訊飛和極光推送集成好了之後,接下來就是根據需求來實現功能。

       現在項目的需求是,當有商品的庫存低於設置的最低庫存數的時候,服務器就會推送一條消息到客戶端。客戶端根據

用戶的設置,來進行通知欄顯示和語音播放。至於服務這一塊咱們先不關心,客戶端來說,要實現的是接收服務器推送過來

消息,然後進行語音合成。思路簡單明瞭,但是可能會踩一些小坑。

      首先接收消息,肯定是在onReceive中進行操作了, 在這個方法中,可以根據約定好的類型,是一般,還是自定義,亦或者

是多媒體,這裏暫時採用的一般的通知,下邊這個就是普通的消息通知,我們在這個裏面,解析服務返回的json串,然後

     

    

 根據自己的需求是增刪字段,在這裏,我是採用 extras 作爲區分類型的擴展字段,以此來區分傳過來的是什麼類型的

消息,是否需要進行語音合成播放。這算是接收,解析,然後接下來等拿到message字段之後,那開始進行語音合成播放

                

    進行語音播放的首先是在application中初始化科大訊飛的類庫,記得這個ID要對應,後期要擴展或者續費也要認準該id
    

    在接下來就是在推送的接收方法中去初始化合成對象,當然這個是固定的步驟,安裝人家的步驟來

    

    下邊呢,就是把文字信息傳遞給合成對象,設置發音人,語速,以及一些其它參數,當一般默認的足夠使用

     如果對這個要求比較高的話,一般需要花錢,這個是沒啥好的辦法,語音庫免費的就那幾個,

      

上面這段代碼都是固定格式,如果咱們的語音沒有正常播放的話,需要仔細去檢查一下,尤其是採用本地引擎的小夥伴

看看引入的so,以爲相應的文件路徑,以及資產即assets下邊的語音文件是否完整導入。另外示例代碼裏面還有一個監聽的

方法,這個對於demo的測試也是很重要,通過這個監聽,可以清晰的看到語音播放的流程以及對應的錯誤代碼。

好了,能做到這一步,基本來說沒啥問題,可以驗證一下是否能在真機上正常播放,最後我說一下我遇見的問題。也算是一個小

bug吧,我第一次做這個demo的時候,很快做完了,但是語音不響,我也檢查了配置參數,以及查看上邊這個監聽,發現

語音播放了,但是沒得聲音,最後找了半天錯誤,發現依賴的so庫版本上,有點欲哭無淚的感覺。這個原因我解釋不清楚,所以

就不干擾各位同學了,當時配置的時候,是其它類型在前邊,比方說armeabi,但是就是不響,後來改成armeabi-v7a,

然後一切就正常了,只能說還是按照訊飛的文檔走吧,現在主流適配一般也就這個了,可能是so庫編譯的時候,就是以這個

爲最先的吧,其它的只是輔助。好了,這個demo到此結束,如果有業務的,可以再拓展。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章