FPVideoPlayer - flashpress/FPNativeUI GitHub Wiki

import flash.events.MouseEvent;
import flash.geom.Rectangle;
import flash.system.Capabilities;
import ru.flashpress.nui.view.video.constants.FPVideoPlayerPlaybackState;
import ru.flashpress.nui.view.video.events.FPVideoPlayerEvent;
import ru.flashpress.nui.view.video.constants.FPVideoPlayerControlStyle;
import ru.flashpress.nui.FPNativeUI;
import ru.flashpress.nui.view.video.FPVideoPlayer;


FPNativeUI.init();
//
var videoBounds:Rectangle = new Rectangle(20, 20, Capabilities.screenResolutionX-40, 400);
var player:FPVideoPlayer = new FPVideoPlayer();
player.frame = videoBounds;
player.clearAllBackground();
player.backgroundColor = 0x999999;
player.backgroundAlpha = 0.5;
//
player.addEventListener(FPVideoPlayerEvent.SOURCE_TYPE_AVAILABLE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.DURATION_AVAILABLE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.MEDIA_TYPES_AVAILABLE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.NATURAL_SIZE_AVAILABLE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.PLAYBACK_STATE_DID_CHANGE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.LOAD_STATE_DID_CHANGE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.READY_FOR_DISPLAY_DID_CHANGE, videoHandler);
player.addEventListener(FPVideoPlayerEvent.WILL_EXIT_FULLSCREEN, videoHandler);
player.addEventListener(FPVideoPlayerEvent.DID_EXIT_FULLSCREEN, videoHandler);
player.addEventListener(FPVideoPlayerEvent.WILL_ENTER_FULLSCREEN, videoHandler);
player.addEventListener(FPVideoPlayerEvent.DID_ENTER_FULLSCREEN, videoHandler);
//
player.controlStyle = FPVideoPlayerControlStyle.EMBEDDED;
player.url = 'http://flashpress.ru/video3.mov';
player.autoplay = true;
player.load();
player.stage.addChild(player);

function videoHandler(event:FPVideoPlayerEvent):void
{
	switch (event.type) {
		case FPVideoPlayerEvent.SOURCE_TYPE_AVAILABLE:
			trace(' sourceType:', player.sourceType);
			break;
		case FPVideoPlayerEvent.DURATION_AVAILABLE:
			trace(' duration:', player.duration);
			break;
		case FPVideoPlayerEvent.MEDIA_TYPES_AVAILABLE:
			trace(' mediaTypes:', player.mediaTypes);
			break;
		case FPVideoPlayerEvent.NATURAL_SIZE_AVAILABLE:
			trace(' size:', player.naturalSize);
			break;
		case FPVideoPlayerEvent.PLAYBACK_STATE_DID_CHANGE:
			trace(' playbackState:', player.playbackState);
			playbackState();
			break;
		case FPVideoPlayerEvent.LOAD_STATE_DID_CHANGE:
			trace(' loadState:', player.loadState);
			break;
		case FPVideoPlayerEvent.READY_FOR_DISPLAY_DID_CHANGE:
			trace(' readyForDisplay:', player.readyForDisplay);
			break;
	}
}

function playbackState():void
{
	switch (player.playbackState) {
		case FPVideoPlayerPlaybackState.PAUSED:
			player.setFullscreen(false);
			break;
	}
}

this.stage.addEventListener(MouseEvent.CLICK, stageClickHandler);
function stageClickHandler(event:MouseEvent):void
{
	player.setFullscreen(true);
	if (player.playbackState != FPVideoPlayerPlaybackState.PLAYING) {
		player.play();
	}
}