- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在使用 Firefox 时遇到问题。此代码在 Chrome 中完美运行。
function create_offer() {
pc = new peer_connection({iceServers: [
{urls: "stun:stun.l.google.com:19302"}
]});
//pc.createDataChannel('channel');
pc.createOffer(
create_offer_success,
create_offer_error,
setSdpConstraints()
);
pc.onaddstream = on_add_stream;
pc.onicecandidate = on_ice_candidate;
}
function create_offer_success(desc) {
pc.setLocalDescription(desc);
}
function create_offer_error(error) {
console.error("create_offer_error() error:", error);
}
function on_ice_candidate(event){
if (event.candidate) {
ice.push(event.candidate);
} else {
return send('/offer', {
'id': id,
'desc': pc.localDescription,
'ice': ice
})
.then(function(data) {
return pc.setRemoteDescription(new session_description(data.desc), function() {
for(var i = 0, l = data.ice.length; i < l; i++) {
pc.addIceCandidate(new ice_candidate(data.ice[i]));
}
return data;
}, function(err) {
console.error(err);
});
})
.catch(function(err) {
console.error('on_ice_candidate() catch: ', err);
});
}
}
function on_add_stream(event) {
console.log(event);
stream = event.stream;
var vid = document.getElementById("stream");
if(isFirefox) {
vid.mozSrcObject = stream;
} else {
vid.src = URL.createObjectURL(stream)
}
}
function setSdpConstraints() {
return !!navigator.mozGetUserMedia && firefoxVersion > 34 ?
{
OfferToReceiveAudio: true,
OfferToReceiveVideo: true
} :
{
optional: [],
mandatory: {
OfferToReceiveAudio: true,
OfferToReceiveVideo: true
}
};
}
Firefox 显示错误:无法创建没有本地轨道、没有 offerToReceiveAudio/Video 和 DataChannel 的报价。Firefox 版本为 44。我做错了什么?
最佳答案
您为 Firefox 设置了错误的约束:
{
OfferToReceiveAudio: true,
OfferToReceiveVideo: true
}
您需要设置的内容(自 Chrome 38 起 Chrome 也支持此设置)应该是:
{
offerToReceiveAudio: 1,
offerToReceiveVideo: 1
}
注意大小写的区别。
关于javascript - Firefox 不创建报价 : Cannot create an offer with no local tracks, 没有 offerToReceiveAudio/Video,也没有 DataChannel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35817908/
我正在努力掌握 perl。我正在尝试编写一些脚本作为调度模拟器。 FCFS、SSTF 和 Scan and Look 我有一个包含 block 请求列表的数组,另一个用作缓冲区。首先,我将复制第一个请
假设我正在ng-repeat处理images,它是一个包含src 和 的对象数组>标题属性。 var images = [ {src: 'a.jpg', caption: 'a'}, {src
“git branch --track”和“git checkout -b --track”之间有什么区别,如果有的话? 最佳答案 内部 git-branch 被调用,然后新分支被 check out
我在自定义 Android Switch 小部件的外观时遇到问题。我有自定义的 xml 可绘制对象,我想将其用于拇指(通常显示开或关的小按钮部分)和轨道(拇指滑过的背景)。当我使用 android:t
文档有点太简单了,我无法完全理解 A controller thus effectively has three modes of operation, determined by whether i
已在 Google Analytics(分析)帮助论坛中发布此内容,但无人能提供帮助。希望我在这里有更多的运气......: 我对我的网页使用 Google Anlaytics 异步跟踪。像个魔法一样
我有一个简单的ng-repeat,其中track by表达式不起作用。这是Fiddle . {{n}} 生成的标记“track”是表达式 [[1,2,3,4,5,5,5,5] track
我想使用 Spotify iOS SDK 从选定的播放列表中获取轨道。但它总是不返回我的数组中的任何项目。我正在使用以下代码来获取轨道: [SPTPlaylistSnapshot playlistWi
我正在尝试将一维数组分配给我的默认构造函数,但我不断收到此错误消息。有没有办法为同一个类创建两个默认构造函数,一个不带参数,一个带参数? 标题 #include #include using na
问题中的答案Android play console: internal testing version, close testing ? how does it works?说: End users
也许有人可以告诉我如何在 Switch() 中设置 Track Width、Track StrokeWidth、Thumb Diameter 的大小 Switch(
我有一个适用于 Android 和 iOS 的移动应用,两者都是使用 Xamarin 构建的。 Android - 该应用会上传到 Beta 轨道 上的 Play 商店,测试完成后,就会升级到生产轨道
我在我的 http 请求中发送一个 Json 格式的用户实体,如下所示: POST http://localhost:52054/api/Authentication/DeleteAccessToke
我正在研究 Java 类介绍的最终项目。该项目的一部分涉及从 MusixMatch using their API 获取歌词片段。我可以使用 track.lyrics.get 从 API 获取歌词,但
我将 ASP.NET Core 与 EFCore 2.0.3 和 Automapper 6.2.2 一起使用 这是我的模型: public class StudentClass {
所以我同时使用 react-native-video 和 react-native-track-player,通常两者都工作正常,但是要使用视频播放器的一些额外功能,比如缓冲,我必须使用 Exo pl
有时我听到人们讨论跟踪编程错误的好处,如果不是为了提高对常见错误的认识的话。我已经开始保留我在代码中发现的错误列表,以及可能导致这些错误的原因。我的主要问题是: 我应该保留哪些与我的错误相关的信息 跟
可以对卡尔曼滤波器更新的估计值应用上限和下限约束吗? 我有一种在实际生活中只能有非负值的状态。当我应用卡尔曼滤波器时,此状态会更新为具有负值。如何在卡尔曼滤波器中应用此限制约束? 请回复 谢谢 最佳答
我正在构建一个使用Sendgrid Marketing Email API的应用程序,目的是发送新闻通讯。它具有许多文章链接,还包括横幅广告和其他服务链接。我们显然希望继续跟踪文章链接,但要排除其他链
我所在的团队管理着许多软件项目 - 我们所做的大部分工作都是端到端的,从需求跟踪到项目管理再到采购和设置 - 财务跟踪是我们的一大难题我们的财务有一个完整的过程。目前我们使用电子表格并将所有发票和采购
我是一名优秀的程序员,十分优秀!