webapp做语音输入使用cordova-plugin-media插件遇到的坑,好过分,必须吐槽一下

情景:使用ionic1开发(历史问题,没人力和资源升级3.0);然后产品说打字很麻烦,现在有现成的http接口,做个语音输入呗!

环境:node7.10.1,cordova-android5.2.2,cordova-ios4.5.4,cordova-plugin-file 4.3.3

 

添加一个cordova-plugin-media插件录音,然后帮我推荐了5.0.1版本。

问题:cordova prepare,报错了cordova-android 需要大于6.0.1。好吧!Cordova-android也有点年份了升级一下,升到6.4.0;prepare ,ios error  cordova-plugin-file 需要大于6.0.0;那就也升级一下;连锁反应,几个插件也需要升级!好了,虽然安卓插件有些警告,但没报错;打包一下,录音!安卓,没问题可以播放;ios录音闪退,什么鬼?

产品催了,说任务算kpi,得赶紧上线!前面的水有多深,谁说得清呢?要不降一下cordova-plugin-media版本,别改动太多!换了个cordova-plugin-media2.41;好了 其他插件用回原来的版本;prepare也没警告!暗爽!!!

录音ios只支持wav;安卓wav,mp3,flac,m4a都可以!

http post接口需要传两个参数,base64音频信息 和 音频格式;模仿了“cordova录音转base64上传七牛”的录音并把文件转base64

问题2:ios转base64 返回“data:audio/x-m4a;base64,AAAAHGZ0eXBNNEEgAAAAAE00QSBt.....”没问题!!!安卓,返回“data:audio/x-m4a;base64,” 什么鬼!!!后面的“AAAxxxx”信息怎么没了!加上media.play()看看能不能播放;能播放,“AAAxxxx”也有了!什么情况???为什么要加media.play()!我不需要不播放啊 !那我play()马上又stop()看看!可以了呀!!!

虽然方法有点粗鲁,先这样吧!

我只是个小白,随便吐槽一下!!!如果有大神知道“data:audio/x-m4a;base64,” 这种情况有更好的办法解决,请告诉小弟一下!!!

 

你可能感兴趣的:(webapp做语音输入使用cordova-plugin-media插件遇到的坑,好过分,必须吐槽一下)