uin-app 使用百度语音和录音授权踩得坑

1 在6.0.1版本上报3001

在低版本安卓手机录音和语音识别不能同时进行,如果先开始录音,语音会报3001,语音识别失败,如果先开始语音识别,那么就会录不了音,获取到的本地录音文件没有声音并且特别短。所以录音传给后台,让后台去识别

2 录音传给后台的格式

录音传给后台,后台说需要用pcm格式,但前台转的格式在后台不能用,uin-app提供的别的格式传到后台不能直接使用,得需要后台转一下格式

3 低版本安卓的授权

uin-app 提供了一个插件,可以检测是否授权,但在低版本不好用,个别手机一直是授权成功的状态,所以需要判断,但在低版本好像没有好的办法,反正我没找到,最后我一进页面就录音,判断录音文件的大小,如果没有授权就会蹦授权弹框,用户点击拒绝,就会回调获取本地录音文件事件,如果点击允许,就会开始录音,根据录音文件的大小就可以判断出用户是否授权,但获取本地录音文件和判断大小都是异步的,所以会有一些延迟,体验不是太好

onLoad() {
		var that = this;
		
		// 录音授权
		recorderManager.onStop(function(res) {
			uni.getFileInfo({
				filePath:res.tempFilePath,
				success:function (res) {
					that.authRecords = true;
					if(res.size > 1728){
						uni.setStorageSync('_luyinshouquan', 1);
					}else{
						uni.setStorageSync('_luyinshouquan', 0);
					}
				},
				fail:function (res) {
					console.log(res);
				}
			})
		});
		if(!this.authRecords){
			this.lushouquan();
		}
	},

// 录音授权
		lushouquan(){
			let that = this;
			//判断平台 0 安卓 1 iOS
			if(this.$aios() == 0){
				//高版本查看是否授权
				var permisionID = 'android.permission.RECORD_AUDIO';
				var result = permision.requestAndroidPermission(permisionID)
				result.then(res => {
					//res == 1高版本同意授权  低版本不管授不授权会直接进来res直接等于1
					if (res == 1) {
						let options = {
							format:'mp3',
							sampleRate:16000,
							numberOfChannels:1,
							// encodeBitRate:96000
						}
						recorderManager.start(options);//开始录音
						setTimeout(function(){
							recorderManager.stop();//经过10秒结束录音
						},10000)
					}else{
						uni.setStorageSync('_luyinshouquan', 0);//高版本拒绝授权
					}
				})
			}else{
				var result = permision.judgeIosPermission("record") 
				if(result){
					uni.setStorageSync('_luyinshouquan', 1);
				}else{
					uni.setStorageSync('_luyinshouquan', 0);
				}
			}
		},
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值