Skip to content
ANE for iOS to play videos on top of everything
Objective-C C ActionScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin autoStart anim + isOverlay Oct 23, 2014
build initial commit Sep 12, 2014
embed display bitmapData on top of the video Sep 26, 2014
ios/VideoIosExtension autoStart anim + isOverlay Oct 23, 2014
lib changed structure, lots of arguments Sep 12, 2014
test/src autoStart anim + isOverlay Oct 23, 2014
.gitignore added displayBitmapDataOverlay Sep 30, 2014 close #3 added note in readme concerning retina resolutoin Dec 4, 2014


iOS only at the moment.

Displaying video in a AIR mobile project using Starling is complicated:

  • Flash display list Video object is not efficient
  • StageVideo may not have any things related to Starling on top of it and may only have 1 Video playing.
  • VideoTexture are still not available on mobile.

The goal of this ANE is to display a video, on top of everything. So let's say it's a StageVideo reverse class.

The movie is Big Buck Bunny and the character comes from the Citrus Engine.

Note: videos aren't displayed in a retina resolution. This was mostly due for performances (the goal was to have several videos running at the same time).

_video = new NativeVideo(stage);
var movie:VideoObject = _video.addVideo("videos/trailer", "mov", VideoObject.MODE_LOOP, _bounds.x, _bounds.y, _bounds.width, _bounds.height);
_video.addVideo("videos/sample_iPod", "m4v", VideoObject.MODE_LOOP, _bounds.x, 150, _bounds.width, _bounds.height);

// 3 modes: MODE_LOOP, MODE_MANUAL_CONTROL (you will advance video time), MODE_PLAY_ONCE.

// we can display bitmapData on top of the video!
movie.displayBitmapData(new logoBitmap().bitmapData, 50, 50, 150, 120);

// and even animations (be sure to put the pngs in iOS package contents)
movie.playAnimation("Sprite-Ancre_%05d", 11, 75, "anims", 1.2, 1, true, false, 0, 0, 68, 68);

//we can tween video position:
eaze(movie).to(0.5, {x:mouseX / 2, y:mouseY / 2});

//we can move to a video part if the video mode is MODE_MANUAL_CONTROL

//remove a video (be careful it changes all videos index).

//for removing all videos

//pause, unpause video
_video.videos[1].paused = true;

//we may change video volume
_video.videos[1].volume = 0.3;

We recommend to remove the video when the app DEACTIVATE and add it again when the ACTIVATE's Event occurs.

You can’t perform that action at this time.