flutter-科大訊飛AIUI-iOS端集成

科大訊飛https://doc.iflyos.cn/aiui/sdk/mobile_doc/quick_start.html#demo

參考文檔

https://blog.csdn.net/lv_ruanruan/article/details/80798327
https://www.liuandy.cn/pod/2018/03/14/2330.html#.YAFRyS-1HX-
http://www.itdecent.cn/p/6e9293fd0745

需要具備知識

flutter : 工程創(chuàng)建 , 插件與原生正逆向通道建立
iOS : swift或者oc基礎 , 私有庫配置

集成過程遇到的問題

集成過程按照官方文檔可以很輕松的崽iOS原生實現(xiàn)出來 , 但是如果想過度到flutter上就需要一些注意 , 我在下方記錄下我自己遇到的問題 .

1.第三方和系統(tǒng)自帶的framework分別怎么添加到私有庫中

a . 首先在我標識的路徑下創(chuàng)建出一個frameworks文件夾(名字可以自己定義 , 只要之后路徑能保持一致就好) . 然后將iflyAIUI.framework放入frameworks文件夾 .


截屏2021-01-15 下午4.42.38.png

b.然后打開dt_aiui_plugin.podspec , 在里面添加
s.vendored_frameworks = "**/iflyAIUI.framework"

c.然后繼續(xù)添加系統(tǒng)自帶的 framework :
s.frameworks = "CoreLocation","CoreTelephony","AVFoundation","AddressBook","AudioToolbox","Contacts","SystemConfiguration","QuartzCore","UIKit","Foundation","CoreGraphics"

2.系統(tǒng)自帶的lib怎么添加到私有庫中

就以我們應該添加的三個lib舉例
s.libraries = "c++", "icucore", "z"

3.怎么添加資源文件 , 并加載出來

分別講述aiui.cfg和meta_vad_16k.jet , 兩個問價加載方式不一樣 , meta_vad_16k.jet的路徑我們控制不了 , 所以比較坑

3.1 aiui.cfg

a.創(chuàng)建resource文件夾 , 放在與framework同級處
b.將aiui.cfg文件放入resource中
c.在dt_aiui_plugin.podspec中添加路徑
s.resources = "resource/*"
d.在代碼處修改bundle的加載方法
NSString *cfgFilePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"aiui" ofType:@"cfg"];

3.2 meta_vad_16k.jet

a.直接將meta_vad_16k.jet拖入到主工程中 , 目前找不到科大訊飛在哪里加載meta_vad_16k.jet的 , 只能找到路徑 , 我猜測是在封裝方法的內(nèi)部調(diào)用bundle的加載 , 這個導致一個問題 , 如果我像aiui.cfg一樣去存放文件 , 會加載不到資源 , 所以只能每次引用這個插件都在主工程中放入一次 .

最后我的podspec文件如下:

# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
# Run `pod lib lint dt_aiui_plugin.podspec' to validate before publishing.
#
Pod::Spec.new do |s|
  s.name             = 'dt_aiui_plugin'
  s.version          = '0.0.1'
  s.summary          = 'A new flutter plugin project.'
  s.description      = <<-DESC
A new flutter plugin project.
                       DESC
  s.homepage         = 'http://example.com'
  s.license          = { :file => '../LICENSE' }
  s.author           = { 'Your Company' => 'email@example.com' }
  s.source           = { :path => '.' }

#  s.vendored_frameworks = "frameworks/iflyAIUI.framework"
  s.vendored_frameworks = "**/iflyAIUI.framework"

  s.frameworks = "CoreLocation","CoreTelephony","AVFoundation","AddressBook","AudioToolbox","Contacts","SystemConfiguration","QuartzCore","UIKit","Foundation","CoreGraphics"

  s.source_files = 'Classes/**/*'
  s.dependency 'Flutter'
  s.library = "z"
  
  s.libraries = "c++", "icucore", "z"

  s.resources = "resource/*"

  s.platform = :ios, '9.0'

  # Flutter.framework does not contain a i386 slice.
  s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
end``` 




?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 應用領域 在智能手機、手表或 PC 等終端中,AIUI 可以與手機深度結(jié)合為全局的智能語音控制系統(tǒng)。在單個應用(A...
    Luke_Hu閱讀 7,632評論 2 1
  • 如今,很多應用都帶有語音輸入,通過語音識別去搜索用戶想要的結(jié)果,這樣做的原因就是方便 ,然后哦我決定自己也去搞...
    plus彭于晏閱讀 5,555評論 0 1
  • 本文主要記錄了將flutter模塊以framework的形式集成進iOS主工程的方案 首先我們先了解一下flutt...
    蓋世英雄_ix4n04閱讀 2,397評論 7 10
  • 科大訊飛語音功能的集成還是比較簡單的,按照文檔來,就幾步,就是注冊麻煩一點。不過沒有看到通過cocoapods的方...
    觀星閱讀 2,818評論 1 0
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)、焦點、注意力、語言聯(lián)想、情景聯(lián)想 觀點: 1.統(tǒng)計學現(xiàn)在叫數(shù)據(jù)分析,社會...
    Jenaral閱讀 5,967評論 0 5

友情鏈接更多精彩內(nèi)容