我正在开发一个测试WebRTC的简单示例,我发现了以下奇怪的行为。
使用Chrome时,媒体限制指定为:
mediaConstraints = {'mandatory': {'OfferToReceiveAudio':true, 'OfferToReceiveVideo':true}};
工作正常。
然而,当使用Firefox(Mac上的 35.0.1 )时,根据规范它应该是:
mediaConstraints = {'offerToReceiveAudio':true,'offerToReceiveVideo':true};
但是不起作用(Ice失败了!)
使用“ O fferToReceiveAudio”
mediaConstraints = {'OfferToReceiveAudio':true,'offerToReceiveVideo':true};
工作正常。
这是记录在案的行为吗?
答案 0 :(得分:4)
正确的格式(现在)是:
offerOptions = {'offerToReceiveAudio':true,'offerToReceiveVideo':true};
因为这是新的spec format,并且Chrome和Firefox都支持。
要特别注意小写字母,因为这确实发生了变化并且投掷了不止一些人。希望你现在已经开始工作了。
另请注意,这些不再是"约束",只是"选项"。简单。
答案 1 :(得分:0)
在这里的规格中:
https://developer.mozilla.org/en-US/docs/Web/Guide/API/WebRTC/WebRTC_basics
我看到约束应采用以下格式:
var constraints = {
mandatory: {
OfferToReceiveAudio: true,
OfferToReceiveVideo: true
}
};
Chrome仅支持该格式。
你可以参考这个讨论同样的问题:
WebRTC - getting 'malformed constraints object' from Chrome but not Firefox