[Actionscript-3] كيفية الاستفادة من play2 () وظيفة من أجل أداء تيار سريع تحويل أشرطة الفيديو؟


Answers

قد يكون أن الخادم يحاول العثور على أقرب ط- إطار إلى الإزاحة الحالية والتي تستغرق وقتا. إذا كنت تعرف ما هو فبس والوقت بين اثنين من إطارات i هو هل يمكن أن تحاول أن تسعى إلى وقت قريب جدا من الإطار السابق أو السابق ط، من شأنها أن تسرع البحث والعرض.

مزيد من المعلومات حول ط الإطار: http://en.wikipedia.org/wiki/Video_compression_picture_types

Question

أنا أعمل حاليا على فلاش ويبلاير مع وظيفة تبديل القرار. أحاول الاستفادة من الدالة play2() في فئة play2() في أكتيونسكريبت.

المشكلة التي أشعر بها هي أن مقاطع الفيديو لا تتغير بسرعة. بالنسبة لأولئك دراية play2() وظيفة وأعتقد أن لاعب يؤدي "standard switch" بدلا من "fast switch."

وتقول الوثائق أنه عندما تكون معلمة الإزاحة -1، يحدث التبديل السريع. ما يحدث في الواقع، على الرغم من مرة واحدة يتم تلقي الحدث "NetStream.Play.Transition" ، لاعب ينتظر حتى تم التوصل إلى الوقت الذي يرمز إليه ns.time + ns.bufferLength ، قبل تنفيذ التبديل.

اعتقدت التحول السريع مسح المخزن المؤقت، ولكن على الاختيار ل ns.backbufferlength ، وجدت أن كل شيء لا يزال مؤقتا. كما أنه يذكر: "عندما يكون الإزاحة -1، يحدث التبديل في الإطار الرئيسي المتوفر الأول بعد netstream.time + 3 "، وهذا هو السبب في أنني مشوش.

أي مساعدة / نظرة ثاقبة على هذه المسألة سيكون موضع تقدير كبير.

في ما يلي مقتطف من الشفرة يصف ما يجري ( newStream() عندما ينقر المستخدم على التغيير إلى دقة جديدة، على غرار يوتوب):

public function newStream(address:String):void
{
    var opts:NetStreamPlayOptions = new NetStreamPlayOptions();
    opts.streamName = address;
    opts.transition = NetStreamPlayTransitions.SWITCH;
    opts.offset = -1;
    ns.play2(opts);
}

private function nsCallback(event:NetStatusEvent)
{
    switch(event.info.code)
    {
        case "NetStream.Play.Transition":
        {
            trace("Current time (on Transition): " + 
                  ns.time, "Buffer: " + ns.bufferLength);
            var estTime:Number = ns.time + ns.bufferLength;
            trace("Estimated Completion Time: " + estTime);
            break;
        }
    }
}