2016-06-16 5 views
0

Ich habe zur Zeit den folgenden Code ein, wo streamVideo eine FLVPlayback-Komponente ist:Wie kann man feststellen, wann der Live-RTMP-Stream in ActionScript angehalten wird?

streamVideo.addEventListener(VideoEvent.STATE_CHANGE, onVideoStateChange); 

streamVideo.isLive = true; 
streamVideo.source = "rtmp://mystreamurl"; 

function onVideoStateChange(evt:VideoEvent):void { 
    var streamVideo:FLVPlayback = evt.target as FLVPlayback; 
    switch (evt.state) { 
    case VideoState.CONNECTION_ERROR: 
     trace('Connection error'); 
     break; 
    default: 
    trace('Player is: ' + evt.state); 
    } 
} 

Das gibt mir Player is: playing wenn mein Strom kommt auf, aber wenn mein Strom losgeht, ich habe nicht jede Art von Benachrichtigung.

Antwort

0

Ich erinnere mich daran, mit einem ähnlichen Problem zu spielen, wenn ich mit Adobe Cirrus und Netstreams spiele. Ich bin mir nicht sicher, ob das funktioniert, aber überprüfen Sie, ob der videoDataRate == 0 unter der Eigenschaft metaData Ihres StreamVideos ist.

+0

nein, das scheint nicht für mich zu arbeiten. Ich benutze 'trace', um es auszugeben, und selbst nachdem der Stream aufhört und das Video nicht im FLVPlayback fortfährt, gibt es mir immer noch 1800. – think123

+0

Wenn du keinen anderen Weg finden kannst ... würde ich mach es einfach mit einem Netstream und einem Videoobjekt. Ich weiß in der Netstream-Klasse können Sie auf BytesAvailable zugreifen. Wenn das 0 ist, ist der Stream vorbei (oder in meinem Fall hörte der Benutzer auf zu sprechen). Sie könnten mir auf eine andere Weise helfen, aber wenn dir die Zeit davon läuft, gibt es einen Workaround für dich. – quantomworks

+0

hmm, ok - wie würde ich Bytes bekommenVerfügbar eingerichtet? Ich habe ein 'NetStream' Objekt. – think123

Verwandte Themen