使用Adobe Cirrus的netStream状态事件问题

基本上我会尝试总结一下。我有一堆潜在的随机字符串用于recvStream.play(“randomstring”); 然后我在运行事件监听器的函数上每隔5秒检查一次计时器:
recvStream.addEventListener(NetStatusEvent.NET_STATUS,
    netConnectionHandler);
然后我在一个switch语句中思考我可以用它来检查它是否是一个活动流,或者让它搜索另一个应该处于活动状态的流或者停止计时器并让它播放。
    // i was thinking this would verify it's playing and then that's it
         case "NetStream.Play.Start" :
            trace("ITS PLAYING YOU SHOULD SEE SOMETHING");
            timer.stop();
                        break;

         // i was thinking i could use this to see if the string is nothing then the timer would run again
         case "NetStream.Buffer.Empty" :
            trace("THE BUFFER IS EMPTY KEEP LOOKING");
                        //code to look again
            break;

//I also tried NetStream.Play.StreamNotFound instead of NetStream.Buffer.Empty didn't work either
但它确实不能那样工作。我应该使用其他东西而不是NetStream.Buffer.Empty吗?还是其他什么都在一起? 我在Flash CS5中使用Actionscript 3,而我正在使用Cirrus RTMFP http://labs.adobe.com/technologies/cirrus/     
已邀请:
我不明白为什么你有一个计时器检查流,当你有一个监听器附加告诉你它的状态:
recvStream.addEventListener(NetStatusEvent.NET_STATUS,
    netStatusHandler);

// some code

private function netStatusHandler (ev:NetStatusEvent) : void {

    if (ev.info.level == "error") {
        trace ("Something went wrong. Try again!");
        // call restart method here
        return;
    }

    switch (ev.info.code) {
        case "NetStream.Play.Start" :
            trace("IT'S PLAYING YOU SHOULD SEE SOMETHING");
            break;

        case "NetStream.Buffer.Empty" :
            trace("THE BUFFER IS NOW EMPTY.");
            break;

        // ... any other netstatus events you want to react upon.
    }
}
显然,你甚至应该考虑在调用
recvStream.play()
之前验证你的随机字符串的正确性 - 这比故意让你的NetStream失败更清晰,而不是让网络紧张。     

要回复问题请先登录注册