NetStream information objects

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:NetStream information objects
  • 本文链接:http://zengrong.net/post/338.htm


在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不会收到任何消息。

由此可见,发布者的发布和停止发布操作,所有的订阅者都可以收到,而订阅者对流的播放操作则并不会通知流的发布者。因此,对于流的控制上,还是要盯紧发布者。 😯