我有一个关于设计模式的问题。我如何知道哪种设计模式对某些模块是有用的?
我正在创建一个视频会议系统,在这个系统中,对于数据库连接,我在数据库的同时对一个实例使用了Singleton设计模式。
现在,我正在为我必须遵循的设计模式创建聊天和视频(一对多)会议模块。
我应该为此声明哪些类和接口。
Class Database
Class Chat
Class TextChat Extends Chat
Class VideoChat Extends Chat
这是正确的方式来声明模块吗?
我要用webRTC+socket.io+node.js构建一个视频会议系统,所以我阅读了西蒙·皮埃特罗·罗曼诺( simple )的新书“与webRTC的实时通信”,我已经读完了它,我将在一个100 Mbps的本地网络上运行这个系统,所以我将使用mesh网络拓扑,因为在这里带宽不是问题,我不想关注这个问题,我只是想简单地问一下如何与许多用户合作,特别是如何使用这些功能:
var pc // PeerConnection Object
pc.onaddstream = ...//for receiving stream from remote party
pc.setRemoteDescrip
我将在接下来的六个月内构建一个应用程序,它将用作双向视频会议系统,以及来回共享一些其他数据。我可能会使用某种相对昂贵的USB网络摄像头,而且我知道USB Video Class设备标准,这似乎是可行的。
现在,我可以使用什么来针对这一点(或其他方向)进行编程?操作系统并不那么重要,因为它还没有决定(将选择以满足整体需求),语言也不重要。网络将是VPN,最坏情况是256kbps对称。理想情况下,它也可以处理编码和压缩,但基本上我只是在寻找某种开始研究的起点(到目前为止,我刚刚发现了TAPI和H.323,不确定最好的编程方法)。
几年前,我实现了一种通过数据信道消息发送信号的机制,即远程用户静音本地视频(例如,设置为false),然后在远程端采取适当的操作(例如,显示远程用户化身而不是黑色视频流),我一直在对一个非直接相关的功能进行一些测试,它让我查看视频轨道的状态(即,在对等连接的接收流上跟踪视频),我注意到远程视频上的静音状态有时在真和假之间波动(尽管远程流本身没有实际更改)。
很难确切地知道这是什么时候发生的,但似乎它可能(不知道是否真的是这样)与长时间(例如10秒)不将媒体附加到对象(例如,用于播放的HTML视频元素)相关,而且如果它在短时间内附加,则视频轨道在接收方不显示muted=true状态。
W3 Me