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

在使用Ionic1开发中,为响应产品需求,尝试整合语音输入功能。面对cordova-plugin-media版本与cordova-android、cordova-plugin-file的兼容性问题,以及iOS与Android平台在录音与Base64转换上的差异,作者分享了解决方案与调试经历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情景:使用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,” 这种情况有更好的办法解决,请告诉小弟一下!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值