检测FLV是否播放完成,在Flash CS3的帮助文档中有onPlayStatus的说明,其返回的信息对象可能的值有两个,一个是 NetStream.Play.Switch,还一个是NetStream.Play.Complete。结果在client的事件中写上onPlayStatus,发现在编辑器中这个事件名称居然还是黑色,而不是和onMetaData一样的蓝色!如果此时加上trace(info.code),在FLV播放完成后还会报错,错误信息中冒出来一个onLastSecond。在帮助文档中查了一下这个事件,居然没有任何介绍。

既然onPlayStatus不管用,不妨试试onLastSecond,这个事件名称还是黑色,写上trace(info.code),结果FLV播放完成之后trace出来一个undefined,看来NetStream中还真有这个事件,但是为什么文档中没有任何介绍呢?

不管怎样,总算还能用onLastSecond检测FLV播放完成,不过这应该不是什么好方法……

5 Comments

  1. onLastSecond是其他工具注射到FLV中的事件,最近研究FLV,做了两个小工具,查看和注入MetaData信息

  2. 聽說 onPlayStatus 是要在 media server 上撥放的才會有這個事件,官方的 api 也是把這個事件分類在 media server,所以這個事件自然是 media server 才會有(我是聽說的)。不過我比較想知道的是這個 onLastSecond 真的可以用嗎? 會不會環境不同就不能用了阿,我現在是用 NetStatusEvent 事件的NetStream.Play.Stop 來做撥放完畢,自已試了幾天下來好像是沒什麼問題,因為也不是很確定這真的能拿來當撥放完畢事件用嗎? 會不會有其他事件也會丟回來 NetStream.Play.Stop??

  3. 剛試了好像不能用耶,小失望….只能乖乖用 NetStream.Play.Stop

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.