潇似风
潇似风
  • 发布:2021-08-12 10:53
  • 更新:2022-07-17 17:19
  • 阅读:4453

在app端web-view中无法调用录音,或者说引入的第三方js是用getUserMedia调用录音,集成到uniapp后没有办法调用麦克风么

分类:uni-app

startTalk failed, NotReadableError: Could not start audio source

2021-08-12 10:53 负责人:DCloud_Android_ST 分享
已邀请:
潇似风

潇似风 (作者)

"<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>", 没有这个权限的原因

江月照我眠

江月照我眠

我说一下我怎么解决的吧,因为用户可能以前拒绝过授权,所以需要在打开webview之前重新获取一下授权。

plus.android.requestPermissions([  
    'android.permission.MODIFY_AUDIO_SETTINGS',   
    'android.permission.RECORD_AUDIO'  
], function(e){    
    if(e.deniedAlways.length>0){ // 权限被永久拒绝    
	    // 弹出提示框解释为何需要权限,引导用户打开设置页面开启    
	    console.log('权限被永久拒绝'+e.deniedAlways.toString())  
    }  
    if(e.deniedPresent.length>0){   //权限被临时拒绝    
	    // 弹出提示框解释为何需要权限,可再次调用plus.android.requestPermissions申请权限    
	    console.log('权限被临时拒绝'+e.deniedPresent.toString());  
    }    
    if(e.granted.length>0){ //权限被允许    
	    console.log('权限被允许:'+e.granted.toString());					  
	    // #ifdef APP-PLUS  
	    wv = plus.webview.create("", "custom-webview", {  
		    plusrequire: "none",   
		    'uni-app': 'none', // 不加载uni-app渲染层框架,避免样式冲突  
		    top: uni.getSystemInfoSync().statusBarHeight+45  
	    })  
	    wv.loadURL(self.pageUrl)  
	    var currentWebview = self.$scope.$getAppWebview();  
	    currentWebview.append(wv);  
	    // #endif  
    }  
})
  • 江月照我眠

    补充一下,这里漏了iOS系统的代码


    2021-10-31 10:23

潇似风

潇似风 (作者)

集成x5内核,页面提示允许麦克风后,也无法录音

DCloud_App_Array

DCloud_App_Array

建议使用uni-app提供的API,参考:https://uniapp.dcloud.io/api/media/audio-context?id=createinneraudiocontext

  • 潇似风 (作者)

    getUserMedia 没有办法调起来麦克风么, 在手机上的其他浏览器可以调用起来的吖


    2021-08-12 18:05

DCloud_Android_ST

DCloud_Android_ST

你好 推荐使用uni提供的audio。H5页面暂时不太清楚问题原因。demo示例提供下我们排查一下原因

潇似风

潇似风 (作者)

videoToSee.vue 是我集成了第三方的api之后
index.vue 是通过webView的

  • DCloud_Android_ST

    Uncaught ReferenceError: WebAssembly is not defined at static/decoder.js:272


    2021-08-18 11:17

8***@qq.com

8***@qq.com

看了楼主和二楼大哥的留言终于弄出来了 分享一下 我这边是小米平板5 云打包正式版也不会报‘NotReadableError Could not start audio source‘’这种错误了
manifest.json中除了android.permission.RECORD_AUDIO再给一个android.permission.MODIFY_AUDIO_SETTINGS权限
获取权限的话用的是wa-permission插件,稍微改动了下162行,数组直接改为了permissionID

async createRTC() {  
				var result = await permision.requestAndroidPermission(['android.permission.RECORD_AUDIO', 'android.permission.MODIFY_AUDIO_SETTINGS'])  
				var strStatus  
				if (result == 1) {  
					const url = "..."   
					strStatus = "已获得授权"  
					this.rtcWv = plus.webview.create("", "rtcWv", {  
						render: 'always',  
						plusrequire: "none",  
						'uni-app': 'none',  
						width: "200px",  
						height: "150px",  
						bottom: 0,  
						right: 0,  
					});  
					this.rtcWv.loadURL(url)  
					var currentWebview = this.$scope.$getAppWebview();  
					currentWebview.append(this.rtcWv);  
					return  
				} else if (result == 0) {  
					strStatus = "未获得授权"  
				} else {  
					strStatus = "被永久拒绝权限"  
				}  
				uni.showModal({  
					title: '提示',  
					content: '录音权限被禁用!',  
					confirmText: '前往设置',  
					success: function(res) {  
						if (res.confirm) {  
							permision.gotoAppPermissionSetting()  
						} else if (res.cancel) {}  
					}  
				});  
			},
腾翼

腾翼

同样的方法,我在手机基座上调试就可以。发布出去,或者是自定义基座,录音就直接走异常了。h5开发的时候有个录音权限的弹框。手机进入h5就没有。难道是这和原因?

  • 腾翼

    刚刚还没写代码,直接去手机设置打开了app的录音权限,好使了。为什么录音权限不能再打开app的时候,直接弹出询问框?


    2022-07-17 17:37

  • 腾翼

    回复 腾翼: 代码写好,已解决


    2022-08-12 09:18

  • getYu

    回复 腾翼: 请问如何解决的,我开发运行自定义基座,用uni.getSystemInfo查看了browserName也是x5webview。但是嵌入的h5页面无法打开麦克风。


    2022-12-30 09:44

要回复问题请先登录注册