Ulepszenia poprawiające interakcje z siecią

W programie Flash Player 10.1 i środowisku AIR 2.5 wprowadzono zestaw nowych funkcji przeznaczonych do optymalizacji pracy w sieci na wszystkich platformach. Nowe funkcje obsługują na przykład buforowanie cykliczne oraz inteligentne przewijanie.

Buforowanie cykliczne

Podczas ładowania treści multimedialnych w urządzeniach mobilnych można napotkać problemy, które prawie nigdy nie zdarzają się w komputerach stacjonarnych. Na przykład: może zabraknąć miejsca na dysku lub pamięci operacyjnej. Podczas wczytywania wideo w wersjach programu Flash Player 10.1 lub środowiska AIR 2.5 dla komputerów stacjonarnych cały plik FLV (lub MP4) jest pobierany i buforowany na dysku twardym. Następnie środowisko wykonawcze odtwarza wideo z pliku bufora. Do całkowitego wyczerpania miejsca na dysku dochodzi bardzo rzadko. W takiej sytuacji środowisko wykonawcze na komputerze stacjonarnym przerywa odtwarzanie wideo.

Na urządzeniu przenośnym może szybciej zabraknąć miejsca na dysku. Jeśli na urządzeniu zabraknie miejsca na dysku, środowisko wykonawcze nie zatrzyma odtwarzania, jak w przypadku środowiska na komputerze stacjonarnym. Zamiast tego środowisko wykonawcze ponownie użyje pliku bufora, kontynuując zapisywanie od początku tego pliku. Użytkownik może kontynuować oglądanie wideo. Użytkownik nie może wyszukiwać w obszarze wideo, który został nadpisany, może jedynie przejść na początek pliku. Domyślnie buforowanie cykliczne nie jest uruchamiane. Może zostać uruchomione podczas odtwarzania, a także po rozpoczęciu odtwarzania, jeśli wielkość filmu przekracza ilość miejsca na dysku lub jego objętość jest większa od dostępnej ilości pamięci RAM. Środowisko wykonawcze wymaga co najmniej 4 MB pamięci RAM lub 20 MB miejsca na dysku — tylko wówczas możliwe jest buforowanie cykliczne.

Uwaga: Jeśli urządzenie oferuje wystarczającą ilość miejsca na dysku, środowisko wykonawcze dla urządzeń przenośnych działa tak samo jak w wersji dla komputerów stacjonarnych. Należy pamiętać o tym, że bufor w pamięci RAM jest używany jako zabezpieczenie na wypadek, gdy urządzenie nie jest wyposażone w dysk lub dysk został zapełniony. Limit wielkości pliku pamięci podręcznej oraz buforu RAM może zostać ustawiony w czasie kompilacji. Niektóre pliki MP4 mają strukturę, która wymaga pobrania całego pliku zanim możliwe będzie jego odtworzenie. Środowisko wykonawcze wykrywa takie pliki i uniemożliwia ich pobieranie, jeśli stwierdzi brak wystarczającej ilości miejsca na dysku. Nie ma wtedy możliwości odtworzenia pliku MP4. Najlepiej, gdy te pliki nie będą w ogóle pobierane.

Programista powinien pamiętać o tym, że wyszukiwanie działa tylko w części strumienia zapisanej w pamięci podręcznej. Działanie metody NetStream.seek() czasami kończy się niepowodzeniem, jeśli przesunięcie jest poza zakresem, a w takim przypadku wywoływane jest zdarzenie NetStream.Seek.InvalidTime .

Inteligentne wyszukiwanie

Uwaga: Funkcja inteligentnego wyszukiwania wymaga programu Adobe® Flash® Media Server 3.5.3.

Program Flash Player 10.1 i środowisko AIR 2.5 udostępniają nowe zachowanie, określane jako inteligentne przewijanie, które zwiększa komfort odtwarzania wideo przesyłanego strumieniowo. Jeśli użytkownik przewija do miejsca zawartego w buforze, środowisko wykonawcze korzysta z zawartości bufora, umożliwiając natychmiastowe przewinięcie. We wcześniejszych wersjach środowiska wykonawczego bufor nie był ponownie używany. Jeśli na przykład użytkownik odtwarzał wideo z serwera przesyłania strumieniowego, czas bufora ( NetStream.bufferTime ) został ustawiony na 20 sekund i użytkownik podjął próbę przejścia o 10 sekund do przodu, środowisko wykonawcze usuwało wszystkie dane z bufora, zamiast ponownie użyć wczytanego 10-sekundowego fragmentu. Takie działanie powodowało, że środowisko wykonawcze zbyt często żądało nowych danych z serwera, co wywoływało obniżenie wydajności odtwarzania i spowolnienie przesyłania.

Poniższy rysunek przedstawia sposób działania bufora we wcześniejszych wersjach środowiska wykonawczego. Właściwość bufferTime określa liczbę sekund wideo do wstępnego wczytania, dlatego jeśli połączenie zostanie utracone, możliwe będzie korzystanie z bufora bez zatrzymywania wideo.

Zachowanie bufora przed wprowadzeniem funkcji inteligentnego przewijania

Dzięki funkcji inteligentnego przewijania środowisko wykonawcze korzysta z bufora w celu umożliwienia natychmiastowego cofania i przewijania do przodu, gdy użytkownik przewija wideo. Poniższy rysunek przedstawia nowe zachowanie.

Przewijanie do przodu przy użyciu funkcji inteligentnego przewijania

Cofanie przy użyciu funkcji inteligentnego przewijania

Funkcja inteligentnego wyszukiwania ponownie wykorzystuje bufor, gdy użytkownik przechodzi naprzód i wstecz, dzięki czemu odtwarzanie przebiega szybciej i bardziej płynnie. Jedną z zalet takiego działania jest zmniejszenie obciążeń łącz internetowych serwisów publikujących materiały wideo. Jeśli przewijanie sięga poza bufor, wykonywane są standardowe operacje, a środowisko wykonawcze żąda nowych danych z serwera.

Uwaga: To zachowanie nie dotyczy progresywnego pobierania wideo.

Aby włączyć inteligentne przewijanie, należy przypisać do właściwości NetStream.inBufferSeek wartość true .