小程序-调取录音权限/拒绝后提示重新授权

我写在 onLoad中调用, 页面渲染后,直接提示麦克风授权,当全部点取消时,要使用可以直接调用impower()


onLoad: function (options){
    this.impower()
},

methods: {
//授权
impower(){
	var t = this;
	wx.authorize({
		  scope: 'scope.record',
		  success (res){
			console.log("录音授权成功",res);
			//app.globalData.audioplay = true
			   // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
			  // wx.startRecord();
			 t.recorderManager = uni.getRecorderManager();
			 t.innerAudioContext = uni.createInnerAudioContext();
			 
			 // 为了防止苹果手机静音无法播放
			 uni.setInnerAudioOption({  
				obeyMuteSwitch: false  
			 })
			 
			 t.innerAudioContext.autoplay = true;
			 
			 console.log("uni.getRecorderManager()",uni.getRecorderManager())
			 t.recorderManager.onStop(function (res) {
				console.log('recorder stop' + JSON.stringify(res));
				t.voicePath = res.tempFilePath;
			 });
		  },
		  fail(){
			console.log("第一次录音授权失败");
			wx.showModal({
			  title: '提示',
			  content: '您未授权录音,功能将无法使用',
			  showCancel: true,
			  confirmText: "授权",
			  confirmColor: "#AF1F25",  
			  success(res){
				if (res.confirm){
					 //确认则打开设置页面(自动切到设置页)
					 wx.openSetting({ 
					  success: (res) => {
						console.log(res.authSetting);
						if (!res.authSetting['scope.record']) {
						  //未设置录音授权
						  console.log("未设置录音授权");
						  wx.showModal({
							title: '提示',
							content: '您未授权录音,功能将无法使用',  // 可以自己编辑
							showCancel: false,
							success: function (res) {
							  console.log("不知道打印的啥?")
							},
						  })
						} else {
						  //第二次才成功授权
						  console.log("设置录音授权成功");
							//app.globalData.audioplay = true;
							t.recorderManager = uni.getRecorderManager();
							t.innerAudioContext = uni.createInnerAudioContext();
						 
						 // 为了防止苹果手机静音无法播放
						 uni.setInnerAudioOption({  
							obeyMuteSwitch: false  
						 })
						 
						 t.innerAudioContext.autoplay = true;
						 
						 console.log("uni.getRecorderManager()",uni.getRecorderManager())
						 t.recorderManager.onStop(function (res) {
							console.log('recorder stop' + JSON.stringify(res));
							t.voicePath = res.tempFilePath;
						 });
						}
					  },
					  fail: function () {
						console.log("授权设置录音失败");
					  }
					 })
				} else if (res.cancel){
				  console.log("cancel");
				}
			  } ,
			  fail (){
				console.log("openfail");
			  }
			})
		  }
		})
    },
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值