ньюансы разработки видео для мобильных устройств
DESCRIPTION
Ньюансы разработки медиаплTRANSCRIPT
Ньюансы разработки медиаплееров для мобильных устройств
[email protected]://gamesdevandmath.blogspot.com
Для кого этот доклад?
Для людей имеющих опыт разработки видео, но не имеющих оного для мобильных устройств
Для сомневающихся в том, что на adobe Air можно написать высоконагруженное приложение для мобильников
Чего здесь не будет?
Рассказа о том, как создавать медиаплееры
Речь идет о ньюансах Чтоб начать, обратитесь к
официальной документации Адоби
Введение
Введение
Можно – ли „на флеше“ разработать медиаплеер для мобильника?
Да, если правильно его готовить! Flex SDK дает возможность
создавать AIR - приложения для айфона и андроида, в том числе с проигрыванием контента.
Введение
Почему – бы не писать на „родных“ языках?
Кроссплатформенность (за исключением исключений)
Рисование во Flash CS вместо кодинга Простота и мощь ActionScript 3.0 Возможность переноса приложения
из броузера
Введение
Как же написать плеер для мобилки?
Да так – же как и для броузера/десктопа
Тот – же код, те – же компоненты Но... есть ньюансы, рассмотрим
их
Тестируемые устройства и средства разработки Код тестировался на устройствах
Samsung galaxy tab P100 (Android 2.2) и Iphone 3.0
Компилировался с помощью Flash CS 5.5
Редактор кода FlashDevelop
Собственно ньюансы
Пути доступа к контенту
Можно проиграть контент через HTTP протокол RTMP протокол С локального хранилища RTMPE и HTTPS протоколы не
работают на мобильных устройствах
Кодеки
Для айфона актуальны кодеки Sorensen и ON2 VP6
Другие не работают Для Android не проверял Sorensen работает быстрее
Доступ к файлам
Айфон позволяет читать/писать файлы только в каталог приложения или специального хранилища приложения(так сказано в документации от Adobe)
Андроид позволяет писать куда угодно(Этого в документации Adobe нет)
Доступ к файлам
Айфон var file:File = new
File(File.applicationStorageDirectory.nativePath+“/filename.txt“)
var stream:FileStream = new FileStream(); stream.open(file, FileMode.WRITE); stream.writeUTFBytes("Hello"); stream.close();
Андроид
var file:File = new File(pathToFile)
stream.open(file, FileMode.WRITE);
stream.writeUTFBytes("Hello");
stream.close();
Ждущий режим
При нажатии кнопки back на айфоне проигрывание медиа и аудио прерывается, коннект к RTMP серверу обрывается
С андроидом это не так: приложение вышедшее из активного режима будет продолжать скачивать или проигрывать
Рендеринг
У айфона и андроида есть возможность использовать аппаратное ускорение при рендеринге.
Оно совершенно необходимо при проигрывания медиа файлов на Iphone. Аndroid устройства в целом более производительны
Рендеринг
Проигрывание локальных файлов
Для того, чтобы проиграть файл из локального хранилища необходимо добавлять file:/// как префикс к пути. Без этого играть не будет
var MyVideo:Video = new Video(); addChild(MyVideo); var MyNC:NetConnection = new NetConnection(); MyNC.connect(null); var MyNS:NetStream = new NetStream(MyNC); MyNS.play("file:///"+pathToLocalDir); MyVideo.attachNetStream(MyNS);
Размышлизмы и рекомендации
Размышлизмы и рекомендации
Не бойтесь пробовать - флеш нормально работает на мобилках. Важно лишь знать чего он не может
Перед разработкой всегда делайте прототип Всегда, всегда, всегда!!! Мобильные приложения нужно писать сразу
оптимизированными – лучше зафейлить проект на пол дороги, чем за неделю до релиза
Удаление ссылок и повторное использование объектов спасут человечество!
Не бойтесь пробовать - флеш нормально работает на мобилках
MVC с первых дней жизни проекта
Размышлизмы и рекомендации Используйте OSMF Flash Media Server только для
прототипов – потом вовза, или чего другое покузявее
Для перекодировки смело используем Flash Media Encoder
Вопросы
Вопросы? Хочешь спросить – напиши [email protected]