Node教程一对多无加载远程服务器Stream Spinner动不停

2024-04-02

我对在项目中使用所需的 Kurrento 很陌生,但是当我克隆 git hub 上为 Kurento 提供的教程并遵循 one2Many 调用的说明时。首先,adapter.js 的软件包损坏了,因为我成功解决了它们,但之后出现了一个问题,即我的网络摄像头运行良好,我能够看到我的侧流,但无法看到见远方溪流有旋动不已。

而且我在 chrome 控制台上看到两个错误,即:-

1)Failed to parse SessionDescription. m=audio 0 UDP/TLS/RTP/SAVPF
Expects at least 4 fields. 
2)Uncaught (in promise) Failed to parse
SessionDescription. m=audio 0 UDP/TLS/RTP/SAVPF Expects at least 4 fields.

现在上面的错误已解决,我的控制台上没有任何错误

以下是我遵循的步骤:

1)sudo git clone https://github.com/Kurento/kurento-tutorial-node.git 2)curl -sL https://deb.nodesource.com/setup | sudo bash -  
3)sudo apt-get install -y nodejs  
4)sudo npm install npm -g  
5)cd static 
6)bower install  
7)node server.js

现在 kurento 示例在端口号:8443 上运行

之后我在我的 chrome 浏览器版本号上打开该 URL版本 46.0.2490.86

之后我看到了 In Hello World 的例子。 截图位于以下网址,请检查:-

https://www.evernote.com/shard/s574/sh/589ac65d-00ca-4611-8907-0646d5e0818a/bd2dc0297bde0181cf3271ecc6b7ac09 https://www.evernote.com/shard/s574/sh/589ac65d-00ca-4611-8907-0646d5e0818a/bd2dc0297bde0181cf3271ecc6b7ac09

在消息文本区域中它将显示:-

Page loaded ...
Starting video call ...
Creating WebRtcPeer and generating local sdp offer ...
chrome: {"audio":true,"video":{"optional":[{"minWidth":640},{"maxWidth":640},{"minFramerate":15},{"maxFramerate":15}]}}
constraints: {"mandatory":{"OfferToReceiveAudio":true,"OfferToReceiveVideo":true},"optional":[{"DtlsSrtpKeyAgreement":true}]}
Created SDP offer
Local description set
'v=0
o=- 5127129914819809209 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:BNeugX+OQ8/t6pt3
a=ice-pwd:SXjhj3+kmcW4fSrKgUQE5W4r
a=fingerprint:sha-256 90:C8:D9:31:EC:61:2A:FD:A5:C0:9E:FA:96:04:05:4A:A1:0D:81:46:2B:03:8E:81:BB:B2:AC:23:ED:82:6B:10
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10; useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:524015682 cname:aXshARqNMIZF2d2q
a=ssrc:524015682 msid:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk 84518c74-a89d-4e0d-91c6-aa89d3112443
a=ssrc:524015682 mslabel:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk
a=ssrc:524015682 label:84518c74-a89d-4e0d-91c6-aa89d3112443
m=video 9 UDP/TLS/RTP/SAVPF 100 116 117 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:BNeugX+OQ8/t6pt3
a=ice-pwd:SXjhj3+kmcW4fSrKgUQE5W4r
a=fingerprint:sha-256 90:C8:D9:31:EC:61:2A:FD:A5:C0:9E:FA:96:04:05:4A:A1:0D:81:46:2B:03:8E:81:BB:B2:AC:23:ED:82:6B:10
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=ssrc-group:FID 390686982 668808432
a=ssrc:390686982 cname:aXshARqNMIZF2d2q
a=ssrc:390686982 msid:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk b0dd89aa-6651-4534-90f6-facded136a0e
a=ssrc:390686982 mslabel:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk
a=ssrc:390686982 label:b0dd89aa-6651-4534-90f6-facded136a0e
a=ssrc:668808432 cname:aXshARqNMIZF2d2q
a=ssrc:668808432 msid:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk b0dd89aa-6651-4534-90f6-facded136a0e
a=ssrc:668808432 mslabel:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk
a=ssrc:668808432 label:b0dd89aa-6651-4534-90f6-facded136a0e
'
Invoking SDP offer callback function 182.71.214.253:8443
Senging message: {"id":"start","sdpOffer":"v=0\r\no=- 5127129914819809209 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:BNeugX+OQ8/t6pt3\r\na=ice-pwd:SXjhj3+kmcW4fSrKgUQE5W4r\r\na=fingerprint:sha-256 90:C8:D9:31:EC:61:2A:FD:A5:C0:9E:FA:96:04:05:4A:A1:0D:81:46:2B:03:8E:81:BB:B2:AC:23:ED:82:6B:10\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10; useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\na=ssrc:524015682 cname:aXshARqNMIZF2d2q\r\na=ssrc:524015682 msid:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk 84518c74-a89d-4e0d-91c6-aa89d3112443\r\na=ssrc:524015682 mslabel:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk\r\na=ssrc:524015682 label:84518c74-a89d-4e0d-91c6-aa89d3112443\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 116 117 96\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:BNeugX+OQ8/t6pt3\r\na=ice-pwd:SXjhj3+kmcW4fSrKgUQE5W4r\r\na=fingerprint:sha-256 90:C8:D9:31:EC:61:2A:FD:A5:C0:9E:FA:96:04:05:4A:A1:0D:81:46:2B:03:8E:81:BB:B2:AC:23:ED:82:6B:10\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=ssrc-group:FID 390686982 668808432\r\na=ssrc:390686982 cname:aXshARqNMIZF2d2q\r\na=ssrc:390686982 msid:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk b0dd89aa-6651-4534-90f6-facded136a0e\r\na=ssrc:390686982 mslabel:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk\r\na=ssrc:390686982 label:b0dd89aa-6651-4534-90f6-facded136a0e\r\na=ssrc:668808432 cname:aXshARqNMIZF2d2q\r\na=ssrc:668808432 msid:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk b0dd89aa-6651-4534-90f6-facded136a0e\r\na=ssrc:668808432 mslabel:Y6etb6gLEIhpyR1SAVBocnsUnE2CwrYUJArk\r\na=ssrc:668808432 label:b0dd89aa-6651-4534-90f6-facded136a0e\r\n"}
Local candidate{"candidate":"candidate:3366644091 1 udp 2122260223 192.168.2.140 35246 typ host generation 0","sdpMid":"audio","sdpMLineIndex":0}
Senging message: {"id":"onIceCandidate","candidate":{"candidate":"candidate:3366644091 1 udp 2122260223 192.168.2.140 35246 typ host generation 0","sdpMid":"audio","sdpMLineIndex":0}}
Local candidate{"candidate":"candidate:1239609295 2 udp 1686052606 180.151.85.198 22889 typ srflx raddr 192.168.2.140 rport 49338 generation 0","sdpMid":"video","sdpMLineIndex":1}
Senging message: {"id":"onIceCandidate","candidate":{"candidate":"candidate:1239609295 2 udp 1686052606 180.151.85.198 22889 typ srflx raddr 192.168.2.140 rport 49338 generation 0","sdpMid":"video","sdpMLineIndex":1}}
Local candidate{"candidate":"candidate:1239609295 2 udp 1686052606 180.151.85.198 13120 typ srflx raddr 192.168.2.140 rport 45775 generation 0","sdpMid":"audio","sdpMLineIndex":0}
Senging message: {"id":"onIceCandidate","candidate":{"candidate":"candidate:1239609295 2 udp 1686052606 180.151.85.198 13120 typ srflx raddr 192.168.2.140 rport 45775 generation 0","sdpMid":"audio","sdpMLineIndex":0}}

在节点控制台中我看到以下内容

Queueing candidate
Connection mj_op2LrzDzfqOCUojr3JJYjBpVxSlcT received message  { id: 'onIceCandidate',
  candidate: 
   { candidate: 'candidate:1239609295 1 udp 1686052607 180.151.85.198 25665 typ srflx raddr 192.168.2.140 rport 42447 generation 0',
     sdpMid: 'video',
     sdpMLineIndex: 1 } }
Queueing candidate
Connection mj_op2LrzDzfqOCUojr3JJYjBpVxSlcT received message  { id: 'onIceCandidate',
  candidate: 
   { candidate: 'candidate:1239609295 2 udp 1686052606 180.151.85.198 22889 typ srflx raddr 192.168.2.140 rport 49338 generation 0',
     sdpMid: 'video',
     sdpMLineIndex: 1 } }
Queueing candidate
Connection mj_op2LrzDzfqOCUojr3JJYjBpVxSlcT received message  { id: 'onIceCandidate',
  candidate: 
   { candidate: 'candidate:1239609295 2 udp 1686052606 180.151.85.198 13120 typ srflx raddr 192.168.2.140 rport 45775 generation 0',
     sdpMid: 'audio',
     sdpMLineIndex: 0 } }
Queueing candidate
reconnect to server 2 200 undefined
reconnect to server 3 300 undefined
reconnect to server 4 500 undefined
reconnect to server 5 800 undefined
reconnect to server 6 1300 undefined
reconnect to server 7 2100 undefined
reconnect to server 8 3400 undefined
reconnect to server 9 5500 undefined
reconnect to server 10 8900 undefined
reconnect to server 11 10000 undefined
reconnect to server 12 10000 undefined
reconnect to server 13 10000 undefined
reconnect to server 14 10000 undefined
reconnect to server 15 10000 undefined

我在我的 ubuntu 机器上使用 Kurento 媒体服务器版本:6.4.0

配置文件即 kurento.conf.json 如下

{
  "mediaServer" : {
    "resources": {
    //  //Resources usage limit for raising an exception when an object creation is attempted
    //  "exceptionLimit": "0.8",
    //  // Resources usage limit for restarting the server when no objects are alive
    //  "killLimit": "0.7",
        // Garbage collector period in seconds
        "garbageCollectorPeriod": 240
    },
    "net" : {
      "websocket": {
        "port": 8888,
        //"secure": {
        //  "port": 8433,
        //  "certificate": "defaultCertificate.pem",
        //  "password": ""
        //},
        //"registrar": {
        //  "address": "ws://localhost:9090",
        //  "localAddress": "localhost"
        //},
        "path": "kurento",
        "threads": 10
      }
    }
  }
}

这是无尽旋转器的快照

so this is all about my code, machine, version and configuration file.enter image description here

我在所有教程示例中都面临这个问题。

请帮助我摆脱这种情况。 任何帮助,将不胜感激。 谢谢


我在另一台 ubuntu 机器上安装了 kurento,它对我有用,我按照以下步骤操作:-

我通过以下方式升级我的分区

apt-get dist-upgrade

但在升级您的发行版之前要小心,因为它会升级发行版,之后您的某些应用程序可能无法工作 .

然后安装

sudo apt-get install libglib2.0-0

之后我安装了kurento

sudo apt-get install kurento-media-server-6.0

之后我明确安装openJdk7

最后它对我有用。但之后我的一些应用程序无法在我的机器上运行,例如 Skype 等,因此我安装了这些应用程序的依赖项比 kurento 远程侧流问题又来了所以最后我删除了该机器上的所有内容并仅运行 kurento ,毫无疑问,这工作正常!

Thanks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node教程一对多无加载远程服务器Stream Spinner动不停 的相关文章

  • Javascript Promise“then”始终运行,即使 Promise 未能执行

    我希望当调用第二个 then 时不执行第三个 then 但是 即使 Promise 被拒绝 调用第二个 then 并且代码返回 rejected 然后返回 undefined 它仍然调用第三个 then 如何不运行第三个 then 这样 未
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la

随机推荐

  • 如何使我的图像可滚动? [安卓平台]

    我的图像占用的空间比 Android 屏幕多得多 我希望图像以全尺寸显示 并且用户可以向任何方向移动 就像一张地图 有什么建议么 您可以使用网络视图 它可以免费为您提供此功能 我不知道为什么但是当我尝试时 使用 loadData 方法不起作
  • 无法导入模块“lambda_function”:没有名为“flatten_json”的模块

    运行 lambda 代码时出现以下错误 我正在使用名为的库 from flatten json import flatten 我试图寻找 lambda 层 但在网上没有找到 请告诉我是否有人以前使用过这个或建议任何替代方案 缺少 flatt
  • jQuery:有没有一种方法可以自动向动态生成的 HTML 添加属性,就像 live() 处理事件一样?

    我有一个如下所示的列表 ul li a href example url 1 Link 1 a li li a href example url 2 Link 2 a li li a href example url 3 Link 3 a
  • 项目上线时Manager Bean不返回

    我有一个使用 JPA 的 JSF 项目 我这样做 从 mysql 数据库检索一些数据 然后将数据绘制在图表中 Locally works pretty fine as you can see here So I deploy the pro
  • 解决Tomcat中的Bind异常

    自一年以来 我们一直在 Apache Tomcat 8 0 36 服务器上运行 Java 8 Web 应用程序 从过去的几天来看 有时当我们重新启动 Tomcat 服务器时 应用程序无法运行 日志显示 Https 端口的地址绑定异常 我尝试
  • 有什么可能的方法从沙盒应用程序运行 clang 编译器吗?

    好的 这个问题相当简单 我有一个沙盒 OSX 应用程序 我希望用户能够编译一些 C 代码 无论他输入什么 但每当我尝试拨打电话时 usr bin env clang the path to the source c 我在日志中收到以下错误
  • 插入按钮没有将数据插入数据库,并且根本没有给出错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 这是包含插入方法的类 我先填充字段 然后创建属性 然后插入方法 然后转到另一个类并创建插入按钮 请帮忙 根本没有给出错误 usin
  • 如何请求Android用户通过点击启用蓝牙?

    from http developer android com guide topics connectivity bluetooth html http developer android com guide topics connect
  • 仅使用 HTML 和 CSS 创建下拉按钮?

    是否可以仅使用 HTML 和 CSS 创建一个带有下拉菜单的按钮 a Take Action a ul li action 1 li li action 2 li ul 单击链接时 悬停也可以 但首选单击 我希望显示 ul actions
  • 抽象声明中没有参数名称?

    这是 F 中抽象成员的典型声明 abstract member createEmployee string gt string gt Employee 您定义参数类型 但不定义它们的名称 没有名字 在实现接口时如何知道每个参数是什么 换句话
  • 如何使用 Kotlin 就地过滤列表?

    在 Java 中 我可以使用以下代码从列表中删除项目 private void filterList List
  • 消除录音曲目中当前播放曲目的声音

    我希望使用远程 IO 进行音频录制和播放 我对核心音频的理解很差 因为我遵循惊人的音频开源 http theamazingaudioengine com 到目前为止 我可以使用相同的代码进行录制和播放 现在我尝试通过麦克风录制并通过 iPh
  • 特定接口上的 TCP/IP 连接

    我想使用两个网络路由之一连接到服务器 一个人会怎样做呢 我在 Google 上搜索了很多 常见的答案是修改路由表 但这并没有什么帮助 因为目的地只有一个 IP 地址 大多数示例都具有具有单个网卡的客户端和具有多个网卡的服务器 但在本例中情况
  • Shell 正则表达式到行尾

    我有一个像这样的小例子的文件 mode dev 该文件中某处的注释中有一个 变量 我想在 Shell 脚本中使用正则表达式获取值 到目前为止我的代码 bin bash conf lt etc test conf Get the file c
  • 队列上的 IEnumerable 迭代器是否应该使项目出列

    我创建了一个自定义通用队列 它实现了通用 IQueue 接口 该接口使用 System Collections Generic 命名空间中的通用队列作为私有内部队列 示例已清除不相关的代码 public interface IQueue
  • 您应该如何从源代码控制构建数据库?

    SO 社区 wiki 上有一些关于数据库对象是否应该进行版本控制的讨论 然而 我还没有看到太多关于为数据库对象创建构建自动化过程的最佳实践的讨论 对于我的团队来说 这一直是一个有争议的讨论点 特别是因为开发人员和 DBA 在评估数据库部署自
  • 如何在 ElasticSearch 中基于正则表达式过滤令牌

    对于 ElasticSearch 查询 我们希望以不同的方式处理单词 即仅由字母组成的标记 和非单词 为此 我们尝试定义两个分析器 返回单词或非单词 例如 我们有描述五金店产品的文档 name Torx drive T9 category
  • 字符串搜索算法

    对于两种字符串搜索算法 KMP和后缀树 在什么情况下优选哪种 举一些实际的例子 如果您必须回答很多查询 例如 大海捞针是否存在 则后缀树会更好 如果您只需在另一个字符串中搜索一个字符串 而不需要执行很多次 那么 KMP 会更好 后缀树是一种
  • SwiftUI - 将 SceneKit 场景添加到 MacOS 项目

    目标 使用 UIViewRepresentable 将 SceneKit 场景添加到 SwiftUI MacOS 项目 不是 Catalyst 我做了什么 当目标是 SwiftUI iOS 时 以下代码可以正常工作 但是当目标是 MacOS
  • Node教程一对多无加载远程服务器Stream Spinner动不停

    我对在项目中使用所需的 Kurrento 很陌生 但是当我克隆 git hub 上为 Kurento 提供的教程并遵循 one2Many 调用的说明时 首先 adapter js 的软件包损坏了 因为我成功解决了它们 但之后出现了一个问题