NetStream information objects
在NetStream信息对象提供的大量信息中,我常用到的有这么几个:
信息 类型 范围 说明 NetStream.Play.PublishNotify 发布流 所有订阅者 当发布者的流开始发布的时候,所有的订阅者都会收到这个消息。但发布者不会收到这个消息。 NetStream.Play.UnpublishNotify 发布流 所有订阅者 当发布者的流停止发布的时候,所有的订阅者都会收到这个消息。但发布者不会收到这个消息。 NetStream.Publish.BadName 发布流 发布者 当发布者试图发布一个已经存在的流时会收到这个消息。只有发布者可以收到这个消息。 NetStream.Publish.Start 发布流 发布者 当发布者开始发布流的时候收到这个消息。只有发布者可以收到这个消息。 NetStream.Unpublish.Success 发布流 发布者 当发布者结束发布流的时候收到这个消息。只有发布者可以收到这个消息。 NetStream.Play.Reset 播放流 播放者 当播放者开始播放流之前会收到这个消息。只有播放者可以收到这个消息 。 NetStream.Play.Start 播放流 播放者 当播放者开始播放流的时候会收到这个消息。只有播放者可以收到这个消息 。 NetStream.Play.Stop 播放流 播放者 当播放者停止播放流的时候会收到这个消息。只有播放者可以收到这个消息 。
假设我们有2个流,一个叫做PU,用于发布,一个叫做PL,用于播放PU发布的流。那么当PU开始发布的时候(如果发布成功),消息的发布情况是这样的:
PU会收到 NetStream.Publish.Start消息,PL会收到
NetStream.Play.PublishNotify消息。
当PU停止发布的时候,情况是这样的:
PU会收到 NetStream.Unpublish.Success,PL会收到
NetStream.Play.UnpublishNotify。
当PL开始播放的时候,情况是这样的:
PL会收到 NetStream.Play.Reset、
NetStream.Play.Start,PU不会收到任何消息。
当PL停止播放的时候,情况是这样的:
PL会收到 NetStream.Play.Stop消息,PU不会收到任何消息。
由此可见,发布者的发布和停止发布操作,所有的订阅者都可以收到,而订阅者对流的播放操作则并不会通知流的发布者。因此,对于流的控制上,还是要盯紧发布者。 :shock:
- 文章ID:338
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/netstream-information-objects/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。