currently, i'm using flowplayer to interact with wowza. i've also extended ModuleBase and enabled logging in all the overridden methods. i've noticed that the lifecycle for a VOD follows this pattern.
each time a user selects a movie to play, these steps are repeated with a new client id (e.g. IClient.getClientId()). what i've notice is that when the movie ends playing, onStreamDestroy and onDisconnect are not called immediately. it takes about a 2-3 minutes before these methods, corresponding to the client id, are called.
how come onStreamDestroy and onDisconnect are not called immediately after a movie finishes playing? shouldn't wowza know that the end of the stream has finished and make these callbacks?
are there other callback methods that i may override to listen for the following events?
when a user stops (not pause) playing the stream
when a stream finishes (e.g. when a movie finishes playing)
it seems when a user stops playing the stream, that's a client side event, so i don't really expect wowza to detect that. however, i would expect that wowza would detect when the end of a file is reached (when the file is finished streaming), since this is a server side event.
onDisconnect happens server-side when an RTMP client disconnect the NetConnection. In RTMP there is a NetStream that uses the NetConnection. The NetStream corresponds with onStreamCreate. Many pre-built players will disconnect the NetConnection when a stream end is detected, but not necessarily, it depends on the player and kind of streaming (vod or live) you are doing.