Как использовать функцию play2 () для быстрого переключения потоков видео?

В настоящее время я работаю над веб-плеером Flash с функцией переключения разрешения. Я пытаюсь использовать функцию play2 () класса NetStream в ActionScript.

Проблема, с которой я столкнулся, заключается в том, что видео не меняются быстро. Для тех, кто знаком с функцией play2 () , я считаю, что проигрыватель выполняет «стандартный переключатель» , а не «быстрый переключатель».

В документации говорится что , когда параметр смещения равен -1, происходит быстрое переключение. На самом деле происходит следующее: после получения события "NetStream.Play.Transition" игрок ждет, пока не будет достигнуто время, обозначенное ns.time + ns.bufferLength , перед выполнением переключения.

Я думал, что быстрое переключение очищает буфер, но при проверке ns.backbufferlength я обнаружил, что все по-прежнему кэшируется. Также упоминается: «Когда смещение равно -1, переключение происходит в первом доступном ключевом кадре после netstream.time + 3 », поэтому я смущен.

Любая помощь / понимание по этому вопросу были бы очень признательны.

Вот фрагмент кода, описывающий, что происходит ( newStream () вызывается, когда пользователь щелкает, чтобы изменить разрешение на новое разрешение, в стиле youtube):

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;
        }
    }
}

50
задан Praveen Vinny 16 December 2012 в 23:57
поделиться