帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
1
帖子
0
勋章
7
Y币

[其他] H5音频API调不起麦克风,紧急求助。

[复制链接]
发表于 2018-12-15 18:17:33



各位大佬好,

在做一个实时音频采音的APP。利用H5的音频API,在PC电脑浏览器测试OK,手机谷歌浏览器测试也OK,但是打包APP后,无法打开麦克风。可以明确的是,APP的麦克风权限已经授权。


H5的音频代码如下:

if (navigator.mediaDevices) {
    navigator.mediaDevices.getUserMedia({audio: true, video: false})
        .then(function (stream) {
            var rec = new HZRecorder(stream, config);
            callback(rec);
        })
        .catch(function (error) {
            switch (error.code || error.name) {
                case 'PERMISSION_DENIED':
                case 'PermissionDeniedError':
                    HZRecorder.throwError('用户拒绝提供信息。');
                    break;
                case 'NOT_SUPPORTED_ERROR':
                case 'NotSupportedError':
                    HZRecorder.throwError('浏览器不支持硬件设备。');
                    break;
                case 'MANDATORY_UNSATISFIED_ERROR':
                case 'MandatoryUnsatisfiedError':
                    HZRecorder.throwError('无法发现指定的硬件设备。');
                    break;
                default:
                    HZRecorder.throwError('无法打开麦克风。异常信息:' + error.code + "信息:" + error.name + "内容:" + error.message);
                    break;
            }
        })
} else {
    HZRecorder.throwError('当前浏览器不支持录音功能。');
    return;
}

提示信息如下:

NotAllowedError   Permission denied

config.xml的部分配置如下

<permission name="camera"/>

<permission name="record"/>

<permission name="location"/>

<permission name="fileSystem"/>

<permission name="internet"/>

<permission name="bootCompleted"/>

<permission name="hardware"/>

3B78F3E1-DF11-4340-B609-144D33A2D2CE.png
380
帖子
4
勋章
6
Y币
https://docs.apicloud.com/Client-API/api#54

用api对象的录音接口
1
帖子
0
勋章
7
Y币
技术支持-F 发表于 2018-12-17 20:58
https://docs.apicloud.com/Client-API/api#54

用api对象的录音接口

你好,这样做不到实时采音,请知悉。是否当前内嵌浏览器不支持H5音频API?
19
帖子
3
勋章
1万+
Y币
手机自带浏览器可以吗
1
帖子
0
勋章
7
Y币
本帖最后由 大鹏九万里 于 2018-12-27 09:21 编辑
辉哥_0808 发表于 2018-12-26 21:20
手机自带浏览器可以吗

使用谷歌,火狐都是可以的。

其实是这样的,用到2个服务。
一个是https的web服务端,一个wss实时推送服务。
1.最早的时候app内嵌的浏览器提示,要求https,wss。
2.都换成https,和xss以后,可以调到H5的音频api了,但是提示调取不到麦克风了。

另外使用api.startRecord是满足不了需求的,我的这个要求是实时采音,实时识别,实时展示实时识别效果。
提示如见1楼,Permmision Denied


我理解,如果不支持这个api不应该是这个错误,而且一开始就不会提示我服务要求https了,但是换了https后,提示没有权限,在想是否是打包程序内部有阻止h5api的东西。
可以明确的是,应用本身打包的时候有勾选麦克风,同时,手机的应用管理可以看到麦克风权限是授权了的。
20
帖子
1
勋章
7575
Y币
1、使用之前判断是否有权限
2、代码全包加密情况下权限会被自动组织,因为代码加密的情况下,你的html页面不在http/https/file域下,这是getUserMedia不支持的。
132
帖子
0
勋章
1776
Y币
可能编译时加密的问题,不使用加密试试吧
1
帖子
0
勋章
7
Y币
您好,我编译时,全局加密是默认的禁用状态。
1
帖子
0
勋章
7
Y币
常山赵子云 发表于 2018-12-28 17:30
1、使用之前判断是否有权限
2、代码全包加密情况下权限会被自动组织,因为代码加密的情况下,你的html页面 ...

编译时的全局加密是禁用状态,判断权限也解决不了问题,现在是如何获取这个权限的问题。
20
帖子
1
勋章
7575
Y币
大鹏九万里 发表于 2019-1-3 16:32
编译时的全局加密是禁用状态,判断权限也解决不了问题,现在是如何获取这个权限的问题。 ...

只要调用之前获取了权限,就可以,我们验证没有问题。另外,ios是不支持的。
12下一页
您需要登录后才可以回帖 登录

本版积分规则