Skip to content

Commit

Permalink
Updated code including new Video Player
Browse files Browse the repository at this point in the history
  • Loading branch information
Tirino committed Dec 8, 2011
1 parent f505ee2 commit bb9b6f8
Show file tree
Hide file tree
Showing 25 changed files with 451 additions and 134 deletions.
2 changes: 1 addition & 1 deletion app.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<application xmlns="http://ns.adobe.com/air/application/2.6">
<id>freevana.freevanaPlayer</id>
<versionNumber>1.1.1</versionNumber>
<versionNumber>1.2</versionNumber>
<filename>FreevanaPlayer</filename>
<name>Freevana Player</name>
<description>Freevana Player</description>
Expand Down
109 changes: 99 additions & 10 deletions freevanaPlayer.mxml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.core.UIComponent;
import mx.utils.ObjectUtil;
import mx.collections.ArrayCollection;
Expand All @@ -24,6 +25,9 @@
import freevana.util.*;
import freevana.view.*;
private static const HELP_BASE_URL:String = 'http://tirino.github.com/freevana/help/';
private var _helpHtmlLoaded:Boolean = false;
private var _movieIsLoading:Boolean = false;
private var _settings:Settings = new Settings();
Expand Down Expand Up @@ -71,10 +75,15 @@
return appVersion;
}
private function initLangs():void
private function getUserLang():String
{
var langs:Array = Capabilities.languages;
var prefLang:String = (langs[0] as String).toUpperCase();
return (langs[0] as String).toUpperCase();
}
private function initLangs():void
{
var prefLang:String = getUserLang();
trace("[main] Lang is: " + prefLang);
if (prefLang.indexOf("EN") != -1) {
resourceManager.localeChain = ['en_US'];
Expand All @@ -83,6 +92,28 @@
}
}
public function loadHelp():void
{
currentState='helpState';
if (!_helpHtmlLoaded) {
var helpFile:String = HELP_BASE_URL + getUserLang() + '_' + getAppVersion() + '.html';
trace(helpFile);
var htmlLoader:HTMLLoader = new HTMLLoader();
var urlReq:URLRequest = new URLRequest(helpFile);
var myComp:UIComponent = new UIComponent();
htmlLoader.width = 670;
htmlLoader.height = 300;
htmlLoader.load(urlReq);
myComp.addChild(htmlLoader);
htmlLoader.addEventListener(Event.COMPLETE, function(ev:Event):void {
trace("Loaded help html");
helpHtml.removeAllChildren();
helpHtml.addChild(myComp);
});
_helpHtmlLoaded = true;
}
}
public function loadSettings():void
{
currentState="settingsState";
Expand Down Expand Up @@ -129,10 +160,17 @@
_settings.markSetupCompleted();
}
}
// Select correct subs size
var selSubsSizeName:String = _settings.getSubtitlesSize();
var selSubsSizeIdx:int = (selSubsSizeName == VideoPlayer.SUBTITLES_SMALL) ? 0 :
(selSubsSizeName == VideoPlayer.SUBTITLES_BIG) ? 2 : 1;
subtitlesSizeCombo.selectedIndex = selSubsSizeIdx;
// Select preferred player
var selPreferredPlayer:String = _settings.getPreferredPlayer();
trace("selPreferredPlayer: " + selPreferredPlayer + ", " + VideoPlayer.VIDEO_PLAYER_OWN);
var selPreferredPlayerIdx:int = (selPreferredPlayer == VideoPlayer.VIDEO_PLAYER_OWN) ? 0 : 1;
preferredPlayerCombo.selectedIndex = selPreferredPlayerIdx;
}
private function loadContent():void {
Expand Down Expand Up @@ -216,6 +254,13 @@
}
}
private function resetVideoPlayer():void
{
videoCanvas.removeAllChildren();
_movieIsLoading = false;
_subtitleURL = "";
}
private function startGettingVideoData(item:Object, isMovie:Boolean):void
{
// this is needed in case multiple double-clicks are triggered
Expand Down Expand Up @@ -253,9 +298,7 @@
function onLinkUnavailable(ev:Event):void {
Alert.show(resourceManager.getString('Strings', 'MEGAUPLOAD_LINK_UNAVAILABLE'));
// Clean up
_movieIsLoading = false;
_subtitleURL = "";
// Go back to main list
resetVideoPlayer()
currentState = "libraryState";
}
Expand Down Expand Up @@ -297,17 +340,37 @@
private function startLoadingVideo(movieURL:String):void
{
libraryMainLabel.text = "Buffering movie...";
var _videoPlayer:VideoPlayer = new VideoPlayer(movieURL, _subtitleURL);
var _videoPlayer:IVideoPlayer;
if (_settings.getPreferredPlayer() == VideoPlayer.VIDEO_PLAYER_FLOW) {
_videoPlayer = new FlowVideoPlayer(movieURL, _subtitleURL);
} else {
_videoPlayer = new FlashVideoPlayer(movieURL, _subtitleURL);
}
_videoPlayer.addEventListener(VideoPlayer.PLAYER_INITIALIZING, onVideoPlayerInit);
_videoPlayer.addEventListener(VideoPlayer.PLAYER_READY, onVideoPlayerReady);
_videoPlayer.addEventListener(VideoPlayer.PLAYER_STOPPED, onVideoPlayerStopped);
_videoPlayer.addEventListener(VideoPlayer.VIDEO_NOT_AVAILABLE, onVideoNotAvailable);
function onVideoPlayerInit(event:Event):void {
// Change to VideoView
currentState = "videoState";
videoCanvas.addChild(_videoPlayer.videoComponent);
videoCanvas.addChild(_videoPlayer.getUIComponent());
_videoPlayer.onAddedToStage();
}
function onVideoPlayerReady(event:Event):void {
trace("[main] onFlowplayerReady.");
trace("[main] onVideoPlayerReady.");
}
function onVideoPlayerStopped(event:Event):void {
resetVideoPlayer();
currentState = "libraryState";
}
function onVideoNotAvailable(event:Event):void {
Alert.show(resourceManager.getString('Strings', 'VIDEO_NOT_AVAILABLE'));
resetVideoPlayer();
currentState = "libraryState";
}
// Set subtitles size
Expand Down Expand Up @@ -388,6 +451,10 @@
private function setSubtitlesSize():void {
_settings.setSubtitlesSize(subtitlesSizeCombo.selectedItem.data);
}
private function setPreferredPlayer():void {
_settings.setPreferredPlayer(preferredPlayerCombo.selectedItem.data);
}
]]>
</fx:Script>
<fx:Metadata>
Expand All @@ -399,6 +466,7 @@
<s:State name="libraryState" stateGroups="library"/>
<s:State name="librarySeasonsState" stateGroups="library" />
<s:State name="loadingState" />
<s:State name="helpState" />
<s:State name="videoState" />
</s:states>
<s:transitions>
Expand Down Expand Up @@ -448,7 +516,7 @@
<s:Button id="subtitlesBtn" enabled="false" label="{resourceManager.getString('Strings', 'SETTINGS_SUBTITLES_SET_LABEL')}" />
</s:HGroup>

<s:HGroup verticalAlign="middle" paddingTop="0" paddingBottom="5" paddingLeft="5" paddingRight="5">
<s:HGroup verticalAlign="middle" paddingTop="0" paddingBottom="10" paddingLeft="5" paddingRight="5">
<s:Label fontSize="13" fontWeight="bold" text="{resourceManager.getString('Strings', 'SETTINGS_SUBTITLES_SIZE_LABEL')}:" />
<mx:ComboBox id="subtitlesSizeCombo" change="setSubtitlesSize();">
<mx:ArrayCollection>
Expand All @@ -457,7 +525,17 @@
<fx:Object label="{resourceManager.getString('Strings', 'SETTINGS_SUBTITLES_SIZE_BIG')}" data="BIG"/>
</mx:ArrayCollection>
</mx:ComboBox>
<mx:Spacer width="100%" height="40" />
</s:HGroup>

<s:HGroup verticalAlign="middle" paddingTop="0" paddingBottom="0" paddingLeft="5" paddingRight="5">
<s:Label fontSize="13" fontWeight="bold" text="{resourceManager.getString('Strings', 'SETTINGS_PREFERRED_PLAYER_LABEL')}:" />
<mx:ComboBox id="preferredPlayerCombo" change="setPreferredPlayer();">
<mx:ArrayCollection>
<fx:Object label="{resourceManager.getString('Strings', 'SETTINGS_PREFERRED_PLAYER_NEW')}" data="OWN"/>
<fx:Object label="{resourceManager.getString('Strings', 'SETTINGS_PREFERRED_PLAYER_OLD')}" data="FLOW"/>
</mx:ArrayCollection>
</mx:ComboBox>
<mx:Spacer width="100%" height="20" />
</s:HGroup>

<s:HGroup paddingTop="5" paddingBottom="5" paddingLeft="5" paddingRight="5">
Expand Down Expand Up @@ -564,6 +642,7 @@
</mx:ArrayCollection>
</mx:ComboBox>
<mx:Spacer width="60%"/>
<s:Button label="{resourceManager.getString('Strings', 'HELP_LABEL')}" click="loadHelp();" />
<s:Button label="{resourceManager.getString('Strings', 'SETTINGS_LABEL')}" click="loadSettings();" />
</mx:ControlBar>
</mx:Panel>
Expand Down Expand Up @@ -596,6 +675,16 @@
</s:VGroup>
</mx:Panel>
</mx:Canvas>
<mx:Canvas id="helpCanvas" width="100%" height="100%" includeIn="helpState">
<mx:Panel id="helpPanel" opaqueBackground="#39628C" width="100%" height="100%" title="{resourceManager.getString('Strings', 'HELP_LABEL')}"
paddingTop="5" paddingBottom="5" paddingLeft="5" paddingRight="5">
<mx:Canvas id="helpHtml" width="100%" height="90%">
<s:Label width="100%" fontSize="14" color="#FFF7B7" text="{resourceManager.getString('Strings', 'HELP_LOADING')}" textAlign="center" />
</mx:Canvas>
<s:Button label="{resourceManager.getString('Strings', 'BACK_BUTTON')}" click="currentState='libraryState';" width="100"/>
</mx:Panel>
</mx:Canvas>

<mx:Canvas id="videoCanvas" width="100%" opaqueBackground="#000000" height="100%" includeIn="videoState"/>
</mx:Canvas>

Expand Down
11 changes: 9 additions & 2 deletions locale/en_US/Strings.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ HEADER_SERIES=Series
HEADER_SEASONS=Seasons
HEADER_EPISODES=Episodes
#
VIDEO_LOADING=Loading video...
CONTACTING_REMOTE_SERVER=Contacting remote server... it can take about a minute...
VIDEO_LOADING=Loading video...
VIDEO_WILL_START=Video will start in...
VIDEO_NOT_AVAILABLE=Video not available. Try again later or choose another video.
# Downloadables
BROWSE_FOR_DB=Select the freevana.db file
YOU_MUST_CHOOSE_DB=You must select a database file
Expand All @@ -41,6 +42,9 @@ SETTINGS_SUBTITLES_SIZE_LABEL=Subtitles size
SETTINGS_SUBTITLES_SIZE_SMALL=Small
SETTINGS_SUBTITLES_SIZE_NORMAL=Normal
SETTINGS_SUBTITLES_SIZE_BIG=Big
SETTINGS_PREFERRED_PLAYER_LABEL=Video Player
SETTINGS_PREFERRED_PLAYER_NEW=New
SETTINGS_PREFERRED_PLAYER_OLD=Old
# Megaupload
MEGAUPLOAD_LINK_UNAVAILABLE=The video is not currently available. Please choose another one.
# Other
Expand All @@ -51,4 +55,7 @@ DOWNLOAD_SUBTITLE_LABEL=Open Subtitle Folder
UPDATES_NEW_PLAYER_VERSION=New version of Freevana Player
UPDATES_DOWNLOAD_NEW_PLAYER=Download new version?
UPDATES_NEW_DATABASE_VERSION=New version of Freevana Database
UPDATES_DOWNLOAD_NEW_DATABASE=Download new version?
UPDATES_DOWNLOAD_NEW_DATABASE=Download new version?
# HELP
HELP_LABEL=Help
HELP_LOADING=Loading...
11 changes: 9 additions & 2 deletions locale/es_ES/Strings.properties
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ HEADER_SERIES=Series
HEADER_SEASONS=Temporadas
HEADER_EPISODES=Episodios
#
VIDEO_LOADING=Cargando video...
CONTACTING_REMOTE_SERVER=Conectando con el servidor remoto... puede tardar alrededor de un minuto en comenzar...
VIDEO_LOADING=Cargando video...
VIDEO_WILL_START=El video comenzará en...
VIDEO_NOT_AVAILABLE=Video no disponible. Pruebe más tarde o elija otro video.
# Downloadables
BROWSE_FOR_DB=Busque la base de datos 'freevana.db'
YOU_MUST_CHOOSE_DB=Debe seleccionar una base de datos
Expand All @@ -40,6 +41,9 @@ SETTINGS_SUBTITLES_SIZE_LABEL=Tamaño de los subtítulos
SETTINGS_SUBTITLES_SIZE_SMALL=Chico
SETTINGS_SUBTITLES_SIZE_NORMAL=Normal
SETTINGS_SUBTITLES_SIZE_BIG=Grande
SETTINGS_PREFERRED_PLAYER_LABEL=Reproductor de Video
SETTINGS_PREFERRED_PLAYER_NEW=Nuevo
SETTINGS_PREFERRED_PLAYER_OLD=Viejo
# Megaupload
MEGAUPLOAD_LINK_UNAVAILABLE=El video no está disponible en este momento. Por favor, elija otro.
# Other
Expand All @@ -50,4 +54,7 @@ DOWNLOAD_SUBTITLE_LABEL=Ver carpeta con Subtítulo
UPDATES_NEW_PLAYER_VERSION=Nueva versión de Freevana Player
UPDATES_DOWNLOAD_NEW_PLAYER=Descargar la nueva versión?
UPDATES_NEW_DATABASE_VERSION=Nueva versión de la Base de Datos
UPDATES_DOWNLOAD_NEW_DATABASE=Descargar la nueva versión?
UPDATES_DOWNLOAD_NEW_DATABASE=Descargar la nueva versión?
# HELP
HELP_LABEL=Ayuda
HELP_LOADING=Cargando...
3 changes: 3 additions & 0 deletions src/freevana/util/FreevanaDB.as
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ package freevana.util
import flash.data.SQLStatement;
import flash.filesystem.File;

/*
* @author tirino
*/
public class FreevanaDB
{
private var _sqlConn:SQLConnection = new SQLConnection();
Expand Down
10 changes: 8 additions & 2 deletions src/freevana/util/Megaupload.as
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ package freevana.util
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.utils.Timer;

//import flash.html.HTMLLoader;

/*
* @author tirino
*/
public class Megaupload extends EventDispatcher
{
public static var PAGE_LOADED_EVENT:String = "PageLoadedEvent";
Expand All @@ -23,6 +26,7 @@ package freevana.util
private var _urlLoader:URLLoader;
private var _counterTotal:int = 60;
private var _timer:Timer = null;
private var _forcedStop:Boolean = false;
public var _privateDownloadURL:String = null;

public var downloadURL:String = null;
Expand All @@ -43,13 +47,15 @@ package freevana.util

public function start():void
{
_forcedStop = false;
_urlLoader = new URLLoader();
_urlLoader.load(new URLRequest(_megaURL));
_urlLoader.addEventListener(Event.COMPLETE, onPageDownloaded);
}

public function stop():void
{
_forcedStop = true;
if (_timer != null) {
_timer.removeEventListener(TimerEvent.TIMER_COMPLETE, doFinishCount);
_timer.stop();
Expand All @@ -64,7 +70,7 @@ package freevana.util
_counterTotal = getCounterInitValue(html_) + 1; // one more second, just in case
_privateDownloadURL = getDownloadLink(html_);

if (_privateDownloadURL && _counterTotal) {
if (_privateDownloadURL && _counterTotal && !_forcedStop) {
_timer = new Timer(1000, _counterTotal);
_timer.addEventListener(TimerEvent.TIMER, doCount);
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, doFinishCount);
Expand Down
3 changes: 3 additions & 0 deletions src/freevana/util/Resources.as
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ package freevana.util
import flash.net.FileFilter;
import flash.events.Event;

/*
* @author tirino
*/
[ResourceBundle("Strings")]
public class Resources
{
Expand Down
Loading

0 comments on commit bb9b6f8

Please sign in to comment.