- 排名
- 31434
- 昨日變化
 
- UID
- 230640
- 好友
- 1
- 蠻牛幣
- 5614
- 威望
- 0
- 注冊時間
- 2017-7-6
- 在線時間
- 876 小時
- 最后登錄
- 2021-3-6
|
馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。
您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號
x
最近做了個教育類項目,接入了科大訊飛的語音聽寫SDK,由于在ios端踩了坑,android端帖子太多接入也容易我這不介紹了。特發帖備后面需要幫助的同僚少走坑。廢話少說
科大訊飛語音聽寫SDK下載自己直接去官網下載即可,開始接入步驟
1.導入訊飛聽寫SDK,這里我需要重點說下?。。。?!不要直接用的工程里的SDK,因為我的SDK是用我的AppId下載的,你需要用自己的appid下載對應SDK。 后面會附上工程demo鏈接,這里我就介紹相關文件,,,libXunFeiVA.a和XunFeiVA這個文件是自己用c和oc封裝的訊飛的相關類,不用管他,放入你工程里就ok
2.XunFeiVAInterface 這個是c#類,主要提供訊飛相關接口給unity和ios互相調用的,直接用就可以了,不用去修改相關代碼,都是事件委托處理,這里需要介紹一點,平時我們經??吹?br />
,ios調unity 用到的api都是UnitySendMessage(),我這用的是MonoPInvokeCallback這個類去封裝了c的靜態方法,可以oc直接調c方法。實現ios給unity傳回調
3.Test類就是我用來測試用的,需要調注冊訊飛的一些信息,這里你只需要替換你自己的AppId就可以,語音開始聽寫接口 XunFeiVAInterface.ISR_StartRecording() 語音聽寫結束接口XunFeiVAInterface.ISR_StopRecording(),還有其他的接口如音量大小,錯誤信息,各個回調等,代碼都很詳細。
4.前面三步一已經完美的實現了訊飛語音聽寫功能,這了我要記錄的時一個坑,找了好久才解決的。因為我的項目需要播放一些本地音頻文件,所以當我調用的訊飛聽寫接口后,各種回調也拿到了。但我本地的音頻不能播放了,Xocde Debug顯示大概是說AVAudioSession已經被占用,意思是需要每次調用訊飛接口后需要重置,這個問題安卓端并沒有。這里自己試了很多方法,最后這樣解決的,添加了AddAction.h文件內容:
#import <AVFoundation/AVFoundation.h>
@interface AVAudioSession(AddAction)
@end
添加AddAction.m文件:
#import "AddAction.h"
@implementation AVAudioSession (AddAction)
- (BOOL)setActive:(BOOL)active withOptions:(AVAudioSessionSetActiveOptions)options error:(NSError * _Nullable __autoreleasing *)outError {
return YES;//強行返回true
}
@end
這里用了oc的分類,就是給系統類添加方法用的,即類似c#的重寫,大意就是給系統的一個類添加了跟系統重名的方法,分類的優先級高于系統的方法,調用時app啟動就調用,這兩個
文件我后面都直接放在了unity 的plugins文件夾下的,也不用去管他
好了。。。。。。。,到這里所有的代碼坑都記錄完畢,好久沒有寫文章了。文中有不對的希望大佬指點。
|
|