最近,我一直在玩,经过一个问题的研究,我发现EMEDIUMTYPE
在errno.h 中有常量定义,注释"错误的媒体类型".谷歌搜索并没有找到一个很好的解释实际意味着什么.我在使用OpenSSL编程服务器时遇到过这个术语(我只是为了提供一些上下文而写)但不是直接编写.
那么,EMEDIUMTYPE
在一般情况下和在这种情况下意味着什么(当然,如果有任何差异)?
我正在编写一个 React 应用程序,并使用Web Speech API进行语音和语音识别。我编写了一些适用于桌面 Chrome 的代码。我向用户请求许可的方式如下:
navigator.mediaDevices
.getUserMedia({ audio: true })
.then(function (stream) {
console.log('Succeeded');
/*Handle success*/
})
.catch(function (err) {
console.log('Failed: ', err)
/*Handle failure*/
});
Run Code Online (Sandbox Code Playgroud)
但是,当从我的 Android 手机使用时,相同的代码始终会转到 catch 回调,并将以下内容写入控制台:
Failed: DOMException: Could not start audio source
Run Code Online (Sandbox Code Playgroud)
该网站询问我是否允许使用麦克风,当我进入网站设置时,它说允许使用麦克风和声音,这让我相信我已经很好地完成了用户交互部分。该网站通过 HTTPS 提供服务(已经解决了该问题),因此我相信这也不是问题。
本次测试中我使用的是小米 9 和 Chrome Chrome 86.0.4240.185。
我的第一直觉是我在这里做错了什么?如果是这样的话,怎么办?否则,我可以做什么来解决这个问题?