web sdk 使用出错 GetUserMedia OverconstrainedError undefined?

错误详情是:

Failed to GetUserMedia OverconstrainedError undefined null 
OverconstrainedError {name: "OverconstrainedError", message: null, constraint: "deviceId"}
AgoraRTCSDK.min.js:2 14:14:36:961 Agora-SDK [ERROR]: [75824163]  Media access OverconstrainedError: constraint: deviceId
rtc-client.js:130 init local stream failed  
{type: "error", info: "constraint: deviceId", msg: "OverconstrainedError"}
index.vue:351 
{type: "error", info: "constraint: deviceId", msg: "OverconstrainedError"}

OverconstrainedError :指定的要求无法被设备满足。此异常是一个类型为 OverconstrainedError 的对象,拥有一个 constraint 属性,这个属性包含了当前无法被满足的 constraint 对。如果你开启了多个 Tab 页 同时推流,请确定分辨率采集是一致的。
请参考相关资料:
https://webrtc.org.cn/getusermedia-common-error/

嗯,我知道是指定的要求无法被设备满足,但是为什么会出这个问题,我是在QtWebEngineView放了web页,QtWebEngineView是基于chromium的,我就放了简单的代码,就报了这个错

这种集成方式可能不太支持。。你试试把相同的代码,放到原生的 chrome 浏览器中,看看是否会报错?

chrome 浏览器是可以的,但我在 QtWebEngineView中跑这里头的例子都是可以的

Audio and Video streams这个例子也是可以的

你试试看 Agora 官网 demo?
http://download.agora.io/sdk/release/Agora_Web_SDK_v3_0_0_FULL.zip?_ga=2.53416424.1316178094.1581244586-1276532045.1570589025

我在后台直接用那个临时链接,可以用啊,音视频都可以,就这个web sdk报这个错误

我感觉有可能是分辨率设置的不一样,测试时参数要保持一致 再对比结果

分辨率一样啊,好奇怪。。

真的蛮奇怪的,用web sdk就报错,就用了这里的简单代码,引入sdk,然后创建流,就出错了。。

分别给下【临时链接测试成功】和【引入 web sdk 测试报错】的两个频道号吧,我看下后台数据。频道号最好复杂一些,避免重复

我解决了问题,是用web sdk的时候,getDevice这里,我默认用了第三个(其实QtWebEngineView是第2个,代码得改改)

AgoraRTC.getDevices(
      res => {
        console.log(res);
        this._deviceId = res[2].deviceId
      },
      err => {
        console.error(err);
      }
    );
1赞

好的,原来如此:+1: