Усовершенствованные возможности для сетевого взаимодействия

В проигрывателях Flash Player 10.1 и AIR 2.5 представлен набор новых функций, предназначенных для оптимизации работы сети на всех платформах, в том числе кольцевая буферизация и интеллектуальный поиск.

Кольцевая буферизация

При загрузке мультимедийного содержимого в мобильные устройства могут возникать проблемы, которые почти никогда не встречаются в настольных компьютерах. Например, наиболее вероятно возникновение проблем, связанных с нехваткой места на диске или памяти. При загрузке видео настольные версии Flash Player 10.1 и AIR 2.5 загружают и кэшируют весь FLV-файл (или MP 4-файл) на жесткий диск. После этого среда выполнения воспроизводит видео из этого кэшированного файла. Проблема с нехваткой места на диске возникает достаточно редко. Если такое происходит, настольная среда выполнения останавливает воспроизведение видео.

Проблема с нехваткой места на диске в мобильном устройстве возникает гораздо чаще. Если в устройстве недостаточно места на диске, среда выполнения не останавливает воспроизведение, как это делает настольная среда выполнения. Вместо этого среда выполнения повторно использует кэшированный файл, выполняя повторную запись в него с самого начала файла. Пользователь может продолжить просмотр видео. Пользователь не может найти область видео, которая была перезаписана, за исключением начала файла. Кольцевая буферизация не запускается по умолчанию. Ее можно запустить во время воспроизведения, а также в начале воспроизведения, если размер ролика превышает размер места на диске или памяти. Чтобы использовать кольцевую буферизацию, среде выполнения требуется не менее 4 МБ оперативной памяти или 20 МБ места на диске.

Примечание. Если в устройстве достаточно места на диске, поведение мобильной версии среды выполнения совпадает с поведением версии для настольных систем. Помните, что буфер в оперативной памяти используется в качестве системы восстановления, если в устройстве отсутствует диск или диск заполнен. Во время компиляции можно задать предельный размер кэшированного файла и буфера оперативной памяти. Некоторые MP4-файлы имеют структуру, которая требует загрузки всего файла перед запуском воспроизведения. Среда выполнения обнаруживает такие файлы и предотвращает загрузку, если места на диске недостаточно, и воспроизведение MP4-файла невозможно. Лучше вовсе не запрашивать загрузку таких файлов.

Разработчик должен помнить, что поиск работает только в пределах кэшированного потока. Иногда не удается выполнить метод NetStream.seek() , если смещение находится вне диапазона, и в этом случае отправляется событие NetStream.Seek.InvalidTime .

Интеллектуальный поиск

Примечание. Для использования функции интеллектуального поиска требуется Adobe® Flash® Media Server 3.5.3.

В проигрывателях Flash Player 10.1 и AIR 2.5 представлено новое поведение, называемое интеллектуальным поиском, которое позволяет улучшить взаимодействие с пользователем при воспроизведении потокового видео. Если пользователь выполняет поиск пункта назначения в пределах буфера, среда выполнения повторно использует буфер для выполнения мгновенного поиска. В предыдущих версиях среды выполнения буфер не использовался повторно. Например, если пользователь воспроизводил видео с сервера потоковой передачи и для времени буфера было задано значение 20 секунд ( NetStream.bufferTime ), при переходе на 10 секунд вперед среда выполнения сбрасывала все данные буфера вместо повторного использования уже загруженных 10 секунд видео. Такое поведение вынуждало среду выполнения запрашивать новые данные с сервера гораздо чаще и было причиной плохого качества воспроизведения при медленных подключениях.

На рисунке ниже показано, как заполняется буфер в предыдущих версиях среды выполнения. Свойство bufferTime задает число секунд для предварительной загрузки видео, поэтому при сбросе соединения буфер можно использовать без остановки воспроизведения видео:

Поведение буфера до реализации функции интеллектуального поиска

После реализации функции интеллектуального поиска среда выполнения использует буфер для осуществления моментального поиска назад и вперед, когда пользователь проматывает видео. Новое поведение проиллюстрировано ниже.

Поиск вперед с помощью функции интеллектуального поиска

Поиск назад с помощью функции интеллектуального поиска

Функция интеллектуального поиска повторно использует буфер, когда пользователь выполняет перемотку вперед или назад, поэтому воспроизведение выполняется с большей скоростью и более плавно. Одним из преимуществ этого поведения для издателей видео является экономия полосы пропускания. Однако, если поиск выполняется за пределами буфера, поведение является стандартным и среда выполнения запрашивает новые данные с сервера.

Примечание. Это поведение не относится к последовательной загрузке видео.

Чтобы воспользоваться умным поиском, задайте для NetStream.inBufferSeek значение true .