Electron 开发实战
邓耀龙
美团高级前端工程师
21224 人已学习
新⼈⾸单¥59
课程目录
已完结/共 35 讲
Electron 开发实战
登录|注册
留言
6
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述:学完这门课程你能得到什么?
03 | Electron介绍:为什么Electron这么火?
04 | 揭秘Electron架构原理:Chromium + Node.js是如何一起工作?
05 | 桌面端技术选型:如何选择合适的桌面端技术?
06 | Electron开发准备:环境搭建及前期准备
07 | 第一个Electron应用:开发一个简单版的番茄钟(上)
08 | 第一个Electron应用:开发一个简单版的番茄钟(下)
09 | 与Web开发不同(一):主进程与渲染进程
10 | 与Web开发不同(二):进程间通信
11 | 与Web开发不同(三):Native能力及原生GUI
12 | 与Web开发不同(四): 释放前端想象力,基于Electron能做什么?
13 | 实战项目综述:整体需求分析
14 | 设计思路:做远程控制有几步?
15 | 项目架构与基础业务:Electron 与 React 框架结合
16 | 主页面基础业务:Real World IPC
17 | 傀儡端实现(一):基于Electron能力捕获桌面视频流
18 | 傀儡端实现(二):如何接收&响应指令?
19 | 傀儡端实现(三):基于WebRTC传输视频流(上)
20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
21 | 信令服务:如何连接两端(上)
23 | 指令传输实现:如何建立数据传输?
22 | 信令服务:如何连接两端(下)
24 | 项目完善与总结(上):App特性
25 | 项目完善与总结(下):原生GUI
26 | Electron 应用打包:从HTML到安装包
27 | Electron 应用更新(一):软件更新的痛点
28 | Electron 应用更新(二):线上项目如何更新?
29 | Electron 质量监控:桌面端的质量抓手是什么?
30 | 使用原生能力:如何集成C++能力?
31 | Electron 自动化测试:如何编写端到端测试?
32 | Electron体验优化:如何优化白屏问题?
33 | Electron客户端的安全:从XSS到RCE
34 | Electron bad parts:辩证看待Electron技术
35 | 结课测试&结束语
本节摘要
登录 后留言

全部留言(6)

  • 最新
  • 精选
Geek_428b11
老师你好,根据您的步骤,在最后一个步骤傀儡端设置addIceCandidate控制端的candidate时,Promise出现undefined。 Promise {<resolved>: undefined} 请问是什么原因? 一直被这个问题困扰一直视频无法出现,包括运行最后的chapter3的代码也存在同样的问题,期待您的解答。谢谢。

作者回复: 猜测是Server端没写对。可以看我的仓库试试?https://github.com/dengyaolong/geektime-electron/tree/master/Chapter%202/10-signal

2020-05-31
4
1
Geek_d31891
按照这个视频后面人工模拟的流程,只需要一方发送candidate就可以建立连接了。但后面演示的代码貌似两边都会去发送candidate

作者回复: 完整P2P流程的话,需要两边都发送

2020-11-04
itgou
老师,我看你可以实现了一个窗口写代码,另一个窗口看编译状态(或者执行shell命令),你是通过shell分屏实现的吗? 还是通过vim分屏实现的呢?我最近一直想通过vim分屏实现这个效果,但是没找到方法,如果你知道的话,麻烦传教一些,不胜感激啊!

作者回复: 用的tmux

2020-04-28
kevinInsight
因为版本等问题,视频中的代码有些已经不适合17+之后的版本了;各种踩坑,终于把p2p的流程跑通了;用17+版本的同学可以参考我的代码哈~ https://github.com/a958330481/remote-control-app
2022-11-03
2
川深
这里pc.onicecandidate = (e) => { ipcRenderer.send('forward', 'control-candidate', e.candidate); }; 为啥一直报错:An object could not be cloned.
2021-11-06
1
Geek_428b11
追加在刚才的问题后来,控制端的candidate内容如下: {"candidate":"candidate:2437072876 1 udp 2122260223 192.168.1.2 62440 typ host generation 0 ufrag 7Y/o network-id 1 network-cost 10","sdpMid":"0","sdpMLineIndex":0}
2020-05-31
收起评论