WebRTC 知识点

知识点 说明
setEnabled 和 setMuted 有什么区别? https://docs.agora.io/cn/Interactive Broadcast/faq/differences_between_setenabled_and_setmuted?platform=Web
如果您与远程对等点共享的只是带有音频轨道和视频轨道的单个流,那么您不需要管理流中的哪个轨道,所以您不妨让transceriver为您处理它 https://developer.mozilla.org/zh-CN/docs/Web/API/RTCPeerConnection/addTrack
为避免出现无限镜像隧道效果(会议窗口重复嵌套),请共享其他窗口或特定标签页,而不是共享会议窗口。如需共享整个屏幕,请在可行的情况下将要展示的会议窗口和内容分别显示在不同的显示屏上。 https://support.google.com/a/users/answer/10519038?hl=zh-Hans
Safari 浏览器并没有提供类似 Chrome 中的 chrome://webrtc-internal 功能,但是它提供了 Allow Media Capture on Insecure Sites 和 Use Mock Capture Devices 功能可以与 Chrome 浏览器形成互补。 WebRTC 调试工具分析:https://blog.csdn.net/aggresss/article/details/107707274
1.基于Web的WebRTC应用程序仅适用于iOS上的Safari,而不适用于用户可能安装的任何其他浏览器(例如Chrome);
2.新的 getUserMedia() 请求会终止现有的流跟踪;
3.扬声器选择不受支持
Safari上使用WebRTC指南:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82948390
1.为了避免发生意外捕捉的情况,WebKit只允许一次只有一个标签页能够进行视频或者音频的捕捉。正在使用捕捉设备的标签页会看到他们的MediaStreamTrack被静音并且在新标签页获得权限之后,这个标签页会收到mute事件。
2.
苹果WebKit详细分析WebRTC实现:http://www.yuepc.com/a/21555.html
1.请避免使用 deviceId 为 “default” 或 “communications” 的麦克风设备即可。
2.若业务侧指定了麦克风进行采集,应避免使用 deviceId 为 “communication” 的麦克风。
WebRTC 已知问题及规避方案 https://doc-zh.zego.im/faq/WebRTC_Problems?product=ExpressVideo&platform=web
问题:enumerateDevices() 没有获取到deviceId?
解决:在执行 navigator.mediaDevices.enumerateDevices() 方法前先执行以下代码:navigator.mediaDevices.getUserMedia({audio: true, video: true}) 从浏览器获得许可
https://blog.csdn.net/Crisf/article/details/113382458
但是要注意移动端,经测试,有些移动端的前后置用的是一个资源,在调用getUserMedia()产生新的stream之前,应该释放之前占用的,否则,例如由前置切换成后置,仅仅是切换facingMode,再次调用getUserMedia()时会抛出错误:摄像头被占用,所以干脆移动端和web端分开,移动端在切换时调用getUserMedia()之前就将track关闭掉;web端在getUserMedia()调用成功之后再关,如果提前,由于getUserMedia()的异步,会造成短时间的黑屏。 https://blog.csdn.net/qq_37800258/article/details/117254741
如果没有添加本地音视频轨,WebRTC内部就无法为其产生带有媒体信息的SDP,媒体协商时就会失败,双方也就无法进行通信了。 https://weread.qq.com/web/reader/377320f07260a55337761c1k6c43287029d6c4b761a2119
在推摄像头流的时候,关闭摄像头,需要推一张占位图。这个时候先用canvas画图,然后用WebRTC提供的captureStream捕获静态帧。再调用getVideoTracks,制定AgoraRTC.createStream的videoSource为该值。视频源如来自 canvas,需要在 canvas 内容不变时,每隔 1 秒重新绘制 canvas 内容,以保持视频流的正常发布。 https://zhuanlan.zhihu.com/p/61021661
这种情况会在Windows系统上发生,当浏览器想要使用网络摄像头或者麦克风的时候却发现他们已经被使用了(比如说Skype正在用)。在Windows上这个错误很常见,因为进程可以独占摄像头的访问权。除了Firefox,它不会在macOS上出现因为mac系统允许几个进程共享摄像头/麦克风的使用权限。 https://webrtc.org.cn/getusermedia-common-error/

posted on 2022-02-11 16:06  cag2050  阅读(123)  评论(0编辑  收藏  举报

导航