El stop viene en dos momentos: cuando se agota el buffer por baja transferencia (previo Buffer.Empty) y al final. En el final, salta el stop, sigue reproduciendo hasta que se agota el buffer, luego Buffer.empty y Buffer.Flush.
Aquí el onStatus que uso para reproducir un NetStream:
Código :
public function onStatus(info:Object) {
//trace(info.code+" con buffer->"+this.bufferTime+" bufferLength"+this.bufferLength)
lastInfo = info;
if (info.level != "status"){
reportChange(info.level);
return;
}
var code = info.code.substr(NetStreamPlayBack.NS_MSG_INDEX);
switch (code){
case "Play.Start":
if (! paused)
reportChange("buffering");
stopped = false;
break;
case "Play.Stop":
if (this.bufferLength == 0 && !paused) {
reportChange("playingAtEnd");
}
else {
if(!paused) reportChange("playing");
}
stopped = true;
break;
case "Buffer.Empty":
if (stopped){
reportChange("playingAtEnd");
}
else{
this.reportChange("buffering");
}
break;
case "Buffer.Full":
reportChange("playing");
break;
case "Seek.Notify":
if (! this.paused){
reportChange("buffering");
}
else{
reportChange("seeking");
}
break;
case "Pause.Notify":
paused = true;
reportChange("paused");
break;
case "Unpause.Notify":
paused = false;
break;
default:
reportChange("NetStream."+code);
}
}
Notarás que el stop chequea que el bufferTime sea 0 para reportarse, sino lo reporta el Buffer.Empty (evento playingAtEnd)
Jorge