ionic2 讯飞语音插件踩坑之android7.0下使用讯飞cordova插件

项目需求:根据极光推送的消息,语音播出内容。
项目环境

ionic info

问题描述:^讯飞语音插件是一个比较老的插件,package.json文件都没有。好像cordova7.0以上安装插件就要求要有package.json文件。

当然,使用cordova6.0直接安装是没有任何问题的,不过像我这样喜新厌旧的人,是不会妥协的。

没有package.json文件我就给你创建不就好了,网上看了下,创建package.json还挺简单。在插件的根目录内执行命

   npm install -g plugman 
   plugman createpackagejson /path/to/your/plugin  // 这个是插件的全路径

创建成功,安装插件,也没有报错了。但是run android的时候,还是报错Error: ENOENT: no such file or directory, open..../config.xml


run android

网上找了很多资料,说是android7.0引入资源文件的路径改了,还有plugin.xml引入.jar文件的标签也换了。


安装插件后platforms/android下的文件

android7.0的目录结构跟android6.0的目录结构不一样了,都整合在app目录下了。所以上图的assets和libs都要放到app下才对,插件的plugin.xml文件修改为
修改plugin.xml文件

完整的plugin.xml如下



    cordova-plugin-xunfeiListenSpeaking

    
        
            
        
        
            
                
            
        

           
              
                
                
                
                
                
                
                
                
                
                
                
                 
                
                

         
        
            

        
        
        
        
        
        
        
        
        
        
        
        
        
        


        
        
        
        
            
        

        
        

        
        
        
        
        

        
        
        
        
        
        
        

        
        
             
                
                5b6d3768
                本示例为讯飞语音Android平台开发者提供语音听写、语法识别、语义理解和语音合成等代码样例,旨在让用户能够依据该示例快速开发出基于语音接口的应用程序。
                科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。科大讯飞是我国唯一以语音技术为产业化方向的“国家863计划成果产业化基地”…
                iFLYTEK is a national key software enterprise dedicated to the research of intelligent speech and language technologies, development of software and chip products, provision of speech information services, and integration of E-government systems. The intelligent speech technology of iFLYTEK, the core technology of the company, represents the top level in the world.
                \t上传内容为:\n\t#ABNF 1.0 gb2312;\n\tlanguage zh-CN;\n\tmode voice;\n\troot $main;\n\t$main = $place1 到$place2 ;\n\t$place1 = 北京 | 武汉 | 南京 | 天津 | 东京;\n\t$place2 = 上海 | 合肥;
                \t您可以说:\n\t今天的天气怎么样?\n\t北京到上海的火车?\n\t有什么好吃的?\n\t上海外滩有哪些酒店?\n\n\t更多语义请登录:\n\thttp://osp.voicecloud.cn/ \n\t配置您的专属语义吧!
                
                请开始说话…
                开始音频流识别
                上传联系人
                上传用户词表
                上传成功
                词表下载失败或内容为空
                下载成功
                iat_show
                显示听写界面
                结果动态修正

                取消语音
                
                
                    本地合成
                    在线合成
                
                
                    local
                    cloud
                
                
                    小燕—女青、中英、普通话
                    小宇—男青、中英、普通话
                    凯瑟琳—女青、英
                    亨利—男青、英
                    玛丽—女青、英
                    小研—女青、中英、普通话
                    小琪—女青、中英、普通话
                    小峰—男青、中英、普通话
                    小梅—女青、中英、粤语
                    小莉—女青、中英、台湾普通话
                    小蓉—女青、中、四川话
                    小芸—女青、中、东北话
                    小坤—男青、中、河南话
                    小强—男青、中、湖南话
                    小莹—女青、中、陕西话
                    小新—男童、中、普通话
                    楠楠—女童、中、普通话
                    老孙—男老、中、普通话
                
                
                    xiaoyan
                    xiaoyu
                    catherine
                    henry
                    vimary
                    vixy
                    xiaoqi
                    vixf
                    xiaomei
                    xiaolin
                    xiaorong
                    xiaoqian
                    xiaokun
                    xiaoqiang
                    vixying
                    xiaoxin
                    nannan
                    vils
                
                
                    正常
                    高兴
                    悲伤
                    生气
                
                
                    neutral
                    happy
                    sad
                    angry
                
                
                    通话
                    系统
                    铃声
                    音乐
                    闹铃
                    通知
                
                
                    0
                    1
                    2
                    3
                    4
                    5
                
                缓冲进度为%d%%,播放进度为%d%%
                
                
                    普通话
                    粤语
                    河南话
                    英语
                
                
                    mandarin
                    cantonese
                    henanese
                    en_us
                
                
                "[word]\napple\nbanana\norange"
                "The quick brown fox jumps over the lazy dog."
                "知,痴,是"
                "磁铁,率领,脆弱,动手,古筝"
                "一座座雪峰插入云霄,峰顶银光闪闪,大大小小的湖泊,像颗颗宝石镶嵌在彩带般的沟谷中。"
                
                    英语
                    汉语
                
                
                    en_us
                    zh_cn
                
                
                    单字
                    词语
                    句子
                
                
                    read_syllable
                    read_word
                    read_sentence
                
                
                    plain
                    complete
                
                
                
                    有标点
                    无标点
                
                
                    1
                    0
                
                
                    开启
                    关闭
                
        
    
    
    
        

            
        
        
            
                
            
        
        
        
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
        
        
    
    


这样,重新安装插件再platform android,然后 run android 就ok啦。


安装成功

讯飞cordova插件使用笔记

在需要使用的页面声明

declare var xunfeiListenSpeaking: any;

播放语音

xunfeiListenSpeaking.startSpeak(success => {
  // 读完‘666’会进入这里,可以在这里写个循环读个不停
  console.log("播放成功");
}, err => {
  // 报错会进到这里
  console.log("err", err);
}, '666');
// 其中 ‘666’ 就是播放的内容

停止播放

xunfeiListenSpeaking.stopSpeak(); // 停止播放,本次播放结束

暂停播放

xunfeiListenSpeaking.pauseSpeaking(); // 暂时停止播放

恢复播放

xunfeiListenSpeaking.resumeSpeaking(); // 恢复那个暂停的播放

总结:由于对cordova插件的封装不了解,在给cordova插件升级这一块来说,真是巨难。自己网上找了好多资料,还把极光插件装了又卸载,就是为了看看他装上了,paltforms/android 的目录结构,并根据极光推送插件的plugin.xml来调整讯飞插件的plugin.xml。cordova6.0也装过,也是为了看看android6.0和android7.0目录结构的区别。对于老手来说,可能一眼就看穿,可是对于我,老天保佑,我特么的终于给装上了。我不是在写代码,我是在写bug...

最后附上参考链接,不过感觉用这个插件的人好少。。。。
1、在cordova Android7.0.0 以下版本集成最新插件
^https://www.jianshu.com/p/23b117ca27a6
2、cordova plugin.xml详解
^https://www.jianshu.com/p/92dd69ae7d8f
3、cordova 中文网文档
^http://cordova.axuer.com/docs/zh-cn/latest/guide/cli/index.html
4、讯飞cordova插件git地址
^https://github.com/Edc-zhang/cordova-plugin-IFlyspeech

你可能感兴趣的:(ionic2 讯飞语音插件踩坑之android7.0下使用讯飞cordova插件)