在vLine中挂断视频通话的正确方法是什么?

时间:2013-08-05 20:04:31

标签: vline

我目前正在使用Client.stopMediaSessions()。它是否正确?根据我在文档中阅读的内容,并在示例中看到,这似乎是正确的方法。

这应该停止本地和远程流,对吗?

调用stopMediaSessions()时会触发哪些事件?从我的日志中,似乎没有调用mediaStream:end的处理程序。应该是吗?或enterState:closed是唯一被解雇的事件?或者都被解雇了?

我的问题与从DOM中删除<video>元素有关 - 包括远程和本地元素。在MediaStreamAPI Reference的示例中,addStream()函数处理mediaStream:startmediaStream:end个事件。但是,当使用它来添加本地和远程流时,您不能指望mediaElement处理程序中的mediaStream:end变量,因为没有任何东西将该var与流绑定,因此您不知道哪个要执行removeChild()的元素。

无论如何,这不是什么大不了的事。我很好奇当调用stopMediaSessions()时事件的顺序是什么;从那以后我可以确保删除正确的<video>元素。

但总的来说,我确实想知道在一组参与者中挂断/终止视频通话的正确方法。

非常感谢!

1 个答案:

答案 0 :(得分:1)

client.stopMediaSessions()会针对给定的vline.MediaSessions停止所有 vline.Client,所以是的,它会“挂断”一个电话。

要与特定用户(vline.Person)“挂断”音频/视频会话,您可以使用Person.stopMedia()

vline.MediaSession可以与其关联本地和远程vline.MediaStreams,因此,通过停止vline.MediaSession,您将隐式停止与其关联的所有vline.MediaStreams

由于client.stopMediaSessions()停止了所有vline.MediaSession(以及vline.MediaStream),因此您应该同时获得mediaStream:end个事件(来自{{1} }}和vline.MediaStream事件(来自enterState:closed)。

为了添加和删除vline.MediaSession元素并跟踪它们,我建议做类似于vLine shell example的操作。它使用唯一的MediaStream ID命名它将<video>元素放入的div

<video>