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

在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

该问题目前已经被锁定, 无法添加新回复