Safari不派冰候选人

2024-01-09

在 Safari 中不起作用的示例

https://github.com/Kurento/kurento-tutorial-node/tree/master/kurento-one2many-call https://github.com/Kurento/kurento-tutorial-node/tree/master/kurento-one2many-call

在 Chrome 中,一切都很好。

Safari 不会在查看模式下发送ice 候选项。演示者模式没问题

===================

update

在前面(index.js)

onOfferViewer 事件始终被执行

onIceCandidate – 从未执行过

从前端到节点的连接

var ws = new WebSocket('wss://' + location.host + '/one2many');

在 KMS 上,不会打开“转弯”,但会配置“眩晕”。我可以从 Safari 进行广播,但无法观看

深入了解 kurento utils

在WebRtcPeer初始化之前选择2个Sturm服务器

IceServers:数组 (2) 0 {用户名:未定义,凭据:未定义,网址: “stun:stun.l.google.com:19302”,网址:[“stun:stun.l.google.com:19302”]}

1 {用户名:未定义,凭据:未定义,网址: “stun:stun.voipbuster.com”,网址:[“stun:stun.voipbuster.com”]}

RTCPeerConnection创建后
Process 答案执行后

我认为下一步必须在函数 addEventListener 中

pc.addEventListener('icecandidate', function (event) {…} 

在 Chrome 中,函数 addEventListener 会执行回调,但 Safari 则不会执行。

我可以假设候选人在订阅开始之前就来了,但没有证据,我不明白为什么演示者工作得很好。

detail

我开始在 Safari 中以演示者模式进行广播

Safari 版本- 13604.3.5(MacO - 11.0.1)

Safari 选项

旧 API - 已启用

冰限制 - 禁用

Bower 的依赖项

"dependencies": { 
    "adapter.js": "v0.2.9", 
    "bootstrap": "~3.3.0", 
    "ekko-lightbox": "~3.3.0", 
    "demo-console": "1.5.1", 
    "kurento-utils": "master" 
 } 

package.json结构

{ 
  "name": "kurento-one2many-call", 
  "version": "6.7.3-dev", 
  "private": true, 
  "scripts": { 
    "postinstall": "cd static && bower install" 
  }, 
  "dependencies": { 
    "express": "~4.12.4", 
    "minimist": "^1.1.1", 
    "ws": "~1.0.1", 
    "kurento-client": "Kurento/kurento-client-js" 
  }, 
  "devDependencies": { 
    "bower": "^1.4.1" 
  } 
} 

Safari 日志的输出

Safari 日志的输出

[Log] Browser does not appear to be WebRTC-capable (adapter.js, line 34) 

[Debug] constraints: {"offerToReceiveAudio":true,"offerToReceiveVideo":true} (kurento-utils.js, line 268) 

[Debug] Created SDP offer (kurento-utils.js, line 270) 

[Debug] Local description set – "v=0 

↵o=- 5811275597248577793 2 IN IP4 127.0.0.1 

↵s=- 

↵t=0 0 

↵a=msid-semantic: WMS 

↵" (kurento-utils.js, line 275) 

"v=0 

o=- 5811275597248577793 2 IN IP4 127.0.0.1 

s=- 

t=0 0 

a=msid-semantic: WMS 

" 

[Log] Senging message: {"id":"viewer","sdpOffer":"v=0\r\no=- 5811275597248577793 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=msid-semantic: WMS\r\n"} (index.js, line 70) 

[Info] Received message: {"id":"viewerResponse","response":"accepted","sdpAnswer":"v=0\r\no=- 3748169328 3748169328 IN IP4 0.0.0.0\r\ns=Kurento Media Server\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=msid-semantic: WMS\r\n"} (index.js, line 70) 

[Debug] SDP answer received, setting remote description (kurento-utils.js, line 320)  

[Debug] Remote stream: – undefined (kurento-utils.js, line 294)

节点如何连接到KMS

var argv = minimist(process.argv.slice(2), {
    default: { 
        as_uri: 'https://localhost:8443/',      
        ws_uri: 'ws://37.228.89.170:8888/kurento' 
    }
}); 

两种选择:

  1. 仅限 Safari 12 - 需要在 Safari 设置、高级、实验性功能中启用实验性功能“启用 MDNS Ice Candidates”
  2. Safari 11 - 你必须打电话getUserMedia({video: true, audio: true}),并让用户接受该对话框以允许您的页面上出现视频和音频。即使您不想使用视频或音频,这也会导致 safari 在谈判期间发送ice-candidates
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Safari不派冰候选人 的相关文章

  • 使用 Docker 的 mediasoup v3

    我正在尝试运行一个2docker 中的 WebRTC 示例 使用 mediasoup 当我在一组实例上进行视频通话时 我想运行两台服务器 我的错误 你有没有看到这个错误 createProducerTransport null 错误 由于地
  • ipad / safari 上的盒子阴影

    我在为 Safari 的 ipad 上的输入框添加漂亮的焦点阴影时遇到问题 这是我的代码 remember to define focus styles focus outline 0 input type text width 494px
  • 是否有解决方法可以解决文本输入 maxlength 在 Safari 中不起作用的问题?

    在 OS X 10 10 1 上的 safari 版本 8 0 10600 1 25 1 中 如果您有以下情况
  • jQuery .click() 在 Safari 中不起作用

    我看过几篇类似的帖子 其中的解决方案似乎对这些人有用 但我无法让它发挥作用 我在用http tutorialzine com 2013 05 mini ajax file upload form http tutorialzine com
  • WebRTC 和 Asp.Net Core

    我想将音频流从我的 Angular Web 应用程序录制到我的 Asp net Core Api 我认为 使用 SignalR 及其 websockets 是实现这一目标的好方法 通过这个打字稿代码 我可以获得一个 MediaStream
  • 当项目数等于列数时,chrome 和 safari 渲染 css 列的方式不同

    我有一个目录列表 它使用 CSS 列 但在 Chrome 和 Safari 中的行为有所不同 目录的每个部分都有一个包装器 将列表排列成两列 我已经有了 CSS 所以 Chrome 会按照我想要的方式呈现它 在 Safari 中 第二列中的
  • 在 ubuntu 上使用 Kurento 安装错误

    我已经浏览了 Stackoverflow 上的所有 Kurento 问题 之前似乎没有出现过这个错误 我已经根据安装指南安装了 Kurento 媒体服务器和 java 客户端示例 我正在运行媒体服务器 当我去运行客户端应用程序时 问题就出现
  • 使用 CSS 转换延迟和 CSS 过滤器的 Safari 错误

    当用于转换 CSS 过滤器时 我遇到 CSS 转换延迟在 Safari 中无法正常工作的问题 它在 Chrome 中工作正常 但在 Safari 中 动画会在延迟时间过后再次发生 其他人以前见过这个或找到解决方法吗 提前致谢 https c
  • 如何将音频从浏览器流式传输到 WebRTC 本机 C++ 应用程序

    到目前为止 我已成功运行以下示例 WebRTC 原生 C 到浏览器视频流示例 http sourcey com webrtc native to browser video streaming example 该示例展示了如何将视频从本机
  • WebRTC:强制对等点使用 TURN 服务器

    我有一个 webrtc 应用程序 它工作正常 但出于测试目的 我需要测试我的 TURN 服务器是否工作 但因为两个测试设备都在同一网络内 所以我无法测试 认为下面的代码会限制候选人仅那些使用 TURN 服务器的 function onIce
  • iOS safari 输入插入符号颜色

    我在 iPhone 设备上使用 Safari 时遇到了一个 CSS 小问题 我的搜索输入是蓝色的 当用户关注它时 插入符号几乎看不见 在所有桌面浏览器中 它都有正确的颜色 白色 即使在桌面 Safari 上也是如此 知道如何修复此问题并更改
  • 如何修复 iOS 11 和 macOS V10.12 Safari 上损坏的变换原点?

    我正在尝试使用 svg 来实现 CSS 动画 我期望 2 个 svg 盒子正在旋转 旋转 transform origin center center 360度 看起来它在 Chrome 和 Firefox 上的表现符合我的预期 但在 ma
  • 有没有办法设置 iOS Safari 过度滚动/弹性滚动区域的样式?

    在 iOS Safari 中 当您滚动到网页底部时 您可以通过尝试再次滚动来将页面 抬起 我认为这是为了向用户保证他们已经到达页面末尾 默认情况下 该区域是空的 白色的 有没有办法用 CSS 来设置这个区域的样式 我想添加背景图片 只是为了
  • Libsourcey 缺少 -fPIC 编译错误

    我正在尝试运行 LibSourcey 以使用 Webrtc 流服务器 问题是我似乎无法让它发挥作用 我努力在我的 Ubuntu 16 04 上 cmake 该项目 cmake 文件中的正则表达式 但现在它已修复 我实际上遇到的问题是编译时的
  • 适用于 iPhone 的 JavaScript 可从非默认 iOS 浏览器在 Safari 中打开

    在移动 Safari 中打开的 googlechrome www lego com 将切换到 Google Chrome iOS 应用程序来打开该 URL 这允许像下面这样的 scriptlet 它允许您从移动 Safari 切换到 Goo
  • Websocket 连接失败并显示星号 11

    我正在尝试将 websocket 配置为与 asterisk 11 一起使用 但是存在一些问题 我遵循的步骤是 在 http conf 中启用以下内容 enabled yes bindaddr 0 0 0 0 bindport 8088 我
  • MediaStream 未处理的承诺拒绝:[object DOMError](在 Safari 11 中)

    在下面初始化 WebRTC 的方法中 我在 Safari Tech Preview 11 中遇到了未处理的承诺拒绝 具体来说 当我分配MediaStream像这样的视频元素 video srcObject event stream 堆栈跟踪
  • webrtc - 视频出现斑点,但它仍然是黑色的

    我使用 chrome 21 运行我的 webrtc 代码 如果我在同一个 chrome 中打开两个选项卡 然后打开其中包含 webrtc 代码的页面 一个选项卡用于发送视频流 一个选项卡用于接收视频流 效果很好 但是 如果我使用两种隐身模式
  • 使用 Javascript 获取 Mobile Safari 中选定的文本

    因此 我正在开发一个小书签 对于我来说 使用 循环 获取用户选择的内容是理想的选择 window getSelection 和 document getSelection 都是我可以调用的函数 但是它们始终返回空字符串 我相信问题在于 当您
  • 删除 Safari 上的 CORS Accept-Encoding 标头

    我制作了一个 javascript 书签 它可以访问公共共享的 google drive 文件夹上的字节混洗图像 因此我制作了 ArrayBuffer CORS 在 Firefox Chrome Opera 甚至 Safari 5 some

随机推荐

  • 设置储值的 Svelte 用户注册问题

    helo 我正在尝试注册用户 成功后将 setContext 设置为新注册的用户 然后导航到主页 服务器正确响应并注册用户 但是当调用 setContext 时 我收到以下错误 index mjs 552 Uncaught 在承诺中 错误
  • EF 可以使用影子属性创建多列索引吗?

    我正在尝试使用影子属性创建多列唯一索引 我知道我只需添加一个属性就可以解决这个问题 但我想看看是否可以通过某种方式保持我的模型干净 要创建多列索引 您可以在 Fluent API 中使用以下选项 modelBuilder Entity
  • iOS/Swift:tableView cellForRowAtIndexPath 崩溃

    我在第 389 行遇到 EXC BREAKPOINT 崩溃 386 func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath gt UI
  • Angular 4 Reactive Forms FormControl 错误为 null

    如果我通过 Tab 键浏览文本输入而不输入任何内容 则会显示错误消息 div 指示所需的验证器已正确触发 但是 如果我在其中一个字段中输入任何内容 控制台会立即抛出此错误 Cannot read property required of n
  • Tkinter Entry 小部件之后的事件回调

    从这里的第一个答案 堆栈溢出 6548837 https stackoverflow com questions 6548837 how do i get an event callback when a tkinter entry wid
  • 为什么按钮点击触发与setTimeout()触发不同?

    考虑以下几乎相同的两个片段 区别在于 第一个使用setTimeout 触发事件 第二个在单击按钮时触发事件 如果您检查控制台 您将看到代码段 1 中的最后两行是 App rendering 1 folder s Observed js 片段
  • 为什么 vector::clear 不从向量中删除元素?

    当我使用clear on a std vector 它应该摧毁里面的所有元素vector 但事实并非如此 示例代码 vector
  • 在公式中显示字符串,而不是在 lm fit 中显示为变量

    我无法解决当lm sformula 执行后 它不显示分配给的字符串sformula 我有一种感觉 这是 R 处理函数参数的通用方式 而不是特定于线性回归 下面通过例子来说明这个问题 示例 1 有不受欢迎的 output lm formula
  • 如何更改 Atom 键绑定

    我正在寻找更改 Atom 文本编辑器的键绑定 我熟悉Android Studio Atom 是否允许我们自定义按键绑定 您必须转到 编辑 gt 首选项 gt 按键绑定 在此选项卡中 您可以看到实际的绑定 如果您想更改它 您可以访问键盘映射文
  • Apache Nifi解压

    我是 Apache NIFI 的新手 正在尝试构建一个 POC 流程 我也需要你的指导 我有一个名为 sample gz 的压缩 gz 文件 其中包含一个名为 sample file 的文件 我需要解压缩sample gz 文件并将 sam
  • ggplot2,如何在函数内使用访问数据框元素?

    我正在尝试使用 ggplot2 创建绘图来标准化许多类似绘图的创建 假设您可以使用 theme stat 或 geom 以及 运算符来堆叠大量选项 那么如何将其包装在函数中呢 我想创建一个函数来绘制数据框的各个部分 例如 library g
  • 使用 new 关键字创建的 Spring bean (@Component) 中的自动装配

    我有两颗春豆 如下 Component A Scope prototype public class A extends TimerTask Autowired private CampaignDao campaignDao Autowir
  • 当单元格背景颜色发生变化时,是否可以在 Excel 中触发事件?

    正如标题所说 我试图在单元格更改背景颜色时发生一些事情 比如说从红色变为绿色 但是只有当用户更改单元格中的值时才会触发工作表的更改事件 是否有解决方法来完成我想做的事情 或者这是一项不可能完成的任务 No 如 这是不可能的 VBA 中没有可
  • 将 SFINAE 与通用 lambda 结合使用

    泛型 lambda 可以利用 替换失败不是错误 规则 例子 auto gL auto func auto param1 auto params gt enable if t lt is integral lt std decay t
  • Listview数据绑定导致formview数据丢失

    在我的代码中 通过 Formview 研究后 我需要调用 listview databind 这使得无法获取 Formview 数据 即使它们仍然出现在屏幕中 这是我的代码 protected void DemandeSearchFormV
  • 如何从 pandas 数据框中的每一列创建子图

    我有一个包含 36 列的数据框 df 这些列绘制在单个绘图图表上 并使用下面的代码以 html 格式显示 import plotly offline as py import plotly io as pio pio write html
  • Servlet 3.0 的构造函数依赖注入?

    从 Servlet 3 0 开始 可以通过编程方式注册 Servlet 实例javax servlet ServletContext addServlet 这个类还有一个createServlet分析一些注释并执行依赖注入的方法 我想如果我
  • 如何枚举 ui-router 中的注册状态?

    我想知道是否有办法在使用时列出所有注册状态用户界面路由器 https github com angular ui ui router 如果您查看文档 state get 对于最新版本的 ui router 您会注意到 不向函数传递任何参数应
  • 为什么 javascript typeof 总是返回“object”

    我哪里做错了 我会等待 Class 作为此代码的结果 但它不会 这是来自对象函数 Typeof 不是这样工作的 它只返回内置类型 你可以尝试 this constructor name Class 它将一直检查原型链 看看是否this或任何
  • Safari不派冰候选人

    在 Safari 中不起作用的示例 https github com Kurento kurento tutorial node tree master kurento one2many call https github com Kure