2013-09-19 4 views
1

Я создаю приложение для iOS и Android с помощью ActionScript 3 и Adobe AIR (3.7) для создания ipa и apk. В этом приложении я загружаю видео из FLV и добавляю его в сцену. Проблема в том, что на эмуляторе или в режиме Flash все в порядке, но на iPad (тест на iPad 1, 2 и 3 с такими же результатами) видео делает шорты прыжки (как внезапное замораживание короткий прыжок в линию времени) каждые 2 секунды, примерно.ActionScript 3 AIR - Video make blink jump

Конечно, я уверен, что видео не было под другими элементами или над движущимися клипами. Я пытаюсь загрузить видео без остальной части интерфейса: тот же результат. Измените renderMode на «direct» или «gpu», нет ... Экспортируйте видео с другим качеством и не забудьте переназначить (Даже с размером в несколько раз), нет снова.

Я использую сходство этого кода, чтобы загрузить мое видео (Это тестовый код я использую, чтобы быть Сюр, что проблема была не в другом месте в моем коде)

var myVideo:Video = new Video(); 
this.addChild(myVideo); 

var nc:NetConnection = new NetConnection(); 
nc.connect(null); 

var ns:NetStream = new NetStream(nc); 

ns.client = { onMetaData:ns_onMetaData, NetStatusEvent:ns_onPlayStatus }; 

myVideo.attachNetStream(ns); 

ns.play("myLink.flv"); 

var ns_onMetaData:* = function(item:Object):void { } 

var ns_onPlayStatus:* = function(event:NetStatusEvent):void {} 

ns.addEventListener(NetStatusEvent.NET_STATUS, ns_onPlayStatus); 

Заранее спасибо и извините для моего плохого английского

ответ

0

Вы не должны использовать FLV на устройствах iOS. Это моя личная догадка о том, почему вы видите «прыжок». FLV программно декодирован, поэтому он относительно медленный. Моя личная догадка заключается в том, что вы испытываете отбрасываемые кадры, пока видео декодируется.

КСН (и все мобильные устройства, на самом деле), вы хотите использовать h.264 видео с mp4 расширением (m4v будет работать на IOS, но не на Android, я считаю). Для воспроизведения вы хотите использовать либо StageVideo, либо StageWebView, а не видеопроигрыватель на базе AS3. StageVideo будет отображать, используя реальную среду мультимедиа устройства. StageWebView будет работать только на iOS и некоторых устройствах Android и будет отображаться с использованием реального медиаплеера устройства.

Разница между этим и Video или FLVPlayback (или видеоплееры на основе Flex или OSMF) заключается в том, что видео будет аппаратно ускорено/декодировано. Это означает, что время рендеринга вашего приложения (и, следовательно, время визуализации видео) также не будет определяться тем, как быстро декодируется видео, поскольку отдельный чип будет обрабатывать его.

Кроме того, аппаратное ускоренное видео будет намного, намного лучше при работе от батареи. Я провел тест в прошлом году на iPad 3, и разница между временем автономной работы, потребляемой программным/процессорным декодированным FLV и аппаратным декодированием h.264, была где-то около 30%.

Имейте в виду, что обе эти опции не отображаются в списке отображения. StageWebView отображает над списком отображения, а StageVideo отображает ниже.

Я предлагаю просмотреть мои предыдущие ответы на видеоизображение в приложении AIR for Mobile. В прошлом я более подробно рассказал о видео в AIR для мобильных устройств. Я создал три приложения для видео по требованию, используя AIR for Mobile, и это определенно деликатная задача.

NetStream http Video not playing on IOS device

Optimizing video playback in AIR for iOS

How to implement stagevideo in adobe air for android?

Надеюсь, это какой-то помочь вам.

+0

Спасибо за ответы. В футуре я перейду к использованию другого способа отображения видео. Для этого приложения я просто изменяю принцип загрузки SWF вместо видео. –

Смежные вопросы