web/static/res/js/incplayer.js
author Edwin Razafimahatratra <edwin@robotalismsoft.com>
Sun, 09 Dec 2012 19:59:03 +0100
changeset 36 6cd5bc3dc7a2
parent 19 26ab64495127
child 46 542252e0c615
permissions -rw-r--r--
mosaic player template niveau 2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     1
function IncPlayer()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     2
{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     3
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     4
	// Members
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     5
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     6
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     7
	// Global
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     8
	this.initDone = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     9
	this.playerIsReady = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    10
	this.iOS = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    11
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    12
	// Sequences
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    13
	this.allSequencesData = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    14
	this.sequences = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    15
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    16
	// Popcorn objects
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    17
	this.videoDivId = "";
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    18
	this.videoExt = "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    19
	this.preferOgg = true; // debug
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    20
	this.popSeq = null;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    21
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    22
	// Controls
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    23
	this.playButton = null;
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    24
	this.progressCurrent = null;
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    25
	this.progressDuration = null;
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    26
	this.hd = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    27
	this.seekTime = 0.0;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    28
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    29
	// Tools
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    30
	this.logiEnable = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    31
	this.jsonData = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    32
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    33
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    34
	// Functions
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    35
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    36
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    37
	this.init = function(videoDivId, playButtonId, progressCurrentId, progressDurationId, jsonFile, preferOgg)
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    38
	{
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    39
		this.videoDivId = videoDivId;
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    40
		this.preferOgg = preferOgg;
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    41
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    42
		// Control
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    43
		this.playButton = $("#" + playButtonId).get(0);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    44
		this.progressCurrent = $("#" + progressCurrentId);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
    45
		this.progressDuration = $("#" + progressDurationId);
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    46
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    47
		// Video extention
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    48
		this.videoExt = this.getSupportedVideoExt();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    49
		if (this.videoExt === "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    50
			this.loge("your browser don't support HTML5 videos");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    51
			return false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    52
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    53
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    54
		// Detect iOS
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    55
		this.detectIOS();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    56
		if (this.iOS) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    57
			this.logi("we are on iOS");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    58
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    59
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    60
		// Load all sequences data
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    61
		this.allSequencesData = this.loadJson(jsonFile);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    62
		this.logi("sequences in part1: " + (this.allSequencesData.part1 !== undefined ? this.allSequencesData.part1.length : 0));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    63
		this.logi("sequences in part2: " + (this.allSequencesData.part2 !== undefined ? this.allSequencesData.part2.length : 0));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    64
		this.logi("sequences in part3: " + (this.allSequencesData.part3 !== undefined ? this.allSequencesData.part3.length : 0));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    65
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    66
		this.initDone = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    67
		return true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    68
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    69
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    70
	this.destroySequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    71
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    72
		if (this.popSeq !== null) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    73
			for (var i = 0; i < this.sequences.length; ++i) {			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    74
				this.popSeq.eq(i).destroy();			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    75
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    76
			this.sequences = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    77
			this.popSeq.remove();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    78
		}		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    79
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    80
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    81
	this.createPopSequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    82
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    83
		if (!this.initDone) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    84
			this.loge("incplayer not initialized");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    85
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    86
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    87
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    88
		// Delete previous popcorn objects
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    89
		this.destroySequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    90
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    91
		// Choose the 3 video
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    92
		this.choosePopSequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    93
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    94
		// And cerate the popcorn sequence
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    95
		this.initPopSequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    96
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    97
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    98
	this.choosePopSequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    99
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   100
		this.sequences = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   101
		if (this.allSequencesData.part1 !== undefined && this.allSequencesData.part1.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   102
			this.sequences.push(this.allSequencesData.part1[this.random(0, this.allSequencesData.part1.length)]);			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   103
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   104
		if (this.allSequencesData.part2 !== undefined && this.allSequencesData.part2.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   105
			this.sequences.push(this.allSequencesData.part2[this.random(0, this.allSequencesData.part2.length)]);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   106
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   107
		if (this.allSequencesData.part3 !== undefined && this.allSequencesData.part3.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   108
			this.sequences.push(this.allSequencesData.part3[this.random(0, this.allSequencesData.part3.length)]);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   109
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   110
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   111
		// Set the video file name 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   112
		var i;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   113
		for (i = 0; i < this.sequences.length; ++i) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   114
			var file = this.sequences[i].src;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   115
			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   116
			// HD
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   117
			if(this.hd) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   118
				file += "hd"; 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   119
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   120
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   121
			// Extention
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   122
			file += "." + this.videoExt;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   123
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   124
			// Set the final file
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   125
			this.sequences[i].src = file;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   126
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   127
		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   128
		this.logi("choosed sequences:");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   129
		for (i = 0; i < this.sequences.length; ++i) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   130
			this.logi(this.sequenceToString(i));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   131
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   132
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   133
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   134
	this.initPopSequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   135
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   136
		var self = this;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   137
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   138
		// Create the popcorn sequencer
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   139
		self.popSeq = Popcorn.sequence(self.videoDivId, self.sequences);
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   140
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   141
		for (var i = 0; i < self.sequences.length; ++i) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   142
			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   143
			var pop = self.popSeq.eq(i);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   144
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   145
			// Hide controls
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   146
			pop.controls(false);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   147
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   148
			// Mute (debug)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   149
			pop.mute();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   150
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   151
			self.listenEvent(pop, "playing", false, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   152
				self.displayPlayButton(false);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   153
				self.logi("play sequence: " + self.sequenceToString(self.popSeq.active));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   154
			});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   155
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   156
			self.listenEvent(pop, "pause", false, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   157
				self.displayPlayButton(true);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   158
				self.logi("pause sequence: " + self.sequenceToString(self.popSeq.active));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   159
			});			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   160
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   161
			self.listenEvent(pop, "timeupdate", false, function() {
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   162
				// Update the current time position
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   163
				$(self.progressCurrent).html(self.secondsToTime(self.popSeq.currentTime()));
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   164
			});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   165
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   166
			self.listenEvent(pop, "canplaythrough", true, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   167
			});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   168
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   169
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   170
		self.popSeq.on("loadedmetadata", function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   171
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   172
			self.playerIsReady = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   173
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   174
			// Set total duration
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   175
			$(self.progressDuration).html(self.secondsToTime(self.popSeq.duration()));			
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   176
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   177
			if (!self.iOS) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   178
				// Automatic play
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   179
				self.ctrlPlay();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   180
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   181
				if (self.seekTime !== 0.0) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   182
					self.popSeq.jumpTo(self.seekTime);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   183
					self.seekTime = 0.0;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   184
				}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   185
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   186
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   187
			// Unlisten event
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   188
			self.popSeq.off("loadedmetadata");
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   189
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   190
			// Call the resize object
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   191
			if (incResize !== undefined) {
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   192
				incResize.resizeElements();
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   193
			}	
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   194
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   195
			self.logi("the player is ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   196
		});	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   197
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   198
		self.popSeq.on("cycle", function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   199
			self.logi("CYCLE !");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   200
		});	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   201
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   202
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   203
	this.listenEvent = function(pop, event, unlisten, func)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   204
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   205
		pop.on(event, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   206
			// Execute the function
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   207
			func();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   208
	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   209
			if (unlisten) {		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   210
				// Unlisten event
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   211
				pop.off(event);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   212
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   213
		});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   214
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   215
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   216
	this.getCurrentPop = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   217
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   218
		var index = this.popSeq.active;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   219
		if (index >= this.sequences.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   220
			index = this.sequences.length-1;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   221
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   222
		return this.popSeq.eq(index);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   223
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   224
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   225
	this.ctrlPlay = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   226
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   227
		if (!this.iOS && !this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   228
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   229
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   230
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   231
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   232
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   233
		if (this.getCurrentPop().paused()) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   234
			// Play
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   235
			this.popSeq.play();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   236
		} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   237
			// Pause
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   238
			this.popSeq.pause();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   239
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   240
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   241
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   242
	this.ctrlNext = function()
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   243
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   244
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   245
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   246
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   247
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   248
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   249
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   250
		if (this.popSeq.active == this.sequences.length - 1) {
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   251
			// We are at the last video
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   252
			return;
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   253
		}
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   254
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   255
		// Go to the next video
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   256
		var jumpTime = this.popSeq.durationSeqs(this.popSeq.active + 1);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   257
		this.popSeq.jumpTo(jumpTime);
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   258
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   259
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   260
	this.ctrlPrev = function()
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   261
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   262
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   263
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   264
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   265
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   266
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   267
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   268
		var videoIndex = this.popSeq.active;
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   269
		if (videoIndex !== 0) {
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   270
			// If we are a less than 1 sec from the sequence start, we just to the prev sequence
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   271
			// else we jump to the start of the current sequence
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   272
			var jumpTimeStartCurrent = this.popSeq.durationSeqs(videoIndex);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   273
			if (this.popSeq.currentTime() - jumpTimeStartCurrent < 1) {
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   274
				--videoIndex;
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   275
			}
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   276
		}
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   277
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   278
		// Go to the next video
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   279
		var jumpTime = this.popSeq.durationSeqs(videoIndex);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   280
		this.popSeq.jumpTo(jumpTime);
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   281
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   282
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   283
	this.ctrlFullScreen = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   284
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   285
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   286
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   287
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   288
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   289
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   290
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   291
		this.logi("full screen");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   292
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   293
	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   294
	this.ctrlHd = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   295
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   296
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   297
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   298
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   299
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   300
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   301
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   302
		this.seekTime = this.popSeq.currentTime();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   303
		this.hd = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   304
		this.createPopSequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   305
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   306
		this.logi("hd");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   307
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   308
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   309
	this.displayPlayButton = function(playIcon)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   310
	{
19
26ab64495127 premièrs tests d'intégration
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 18
diff changeset
   311
		/*
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   312
		if (playIcon) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   313
			// Controller display
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   314
			this.playButton.src = 'static/res/img/ctrlplayover.jpg';
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   315
	    	this.playButton.onmouseover = function() {this.src='static/res/img/ctrlplayover.jpg';}; 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   316
	    	this.playButton.onmouseout = function() {this.src='static/res/img/ctrlplay.jpg';};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   317
		} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   318
			// Controller display
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   319
			this.playButton.src = 'static/res/img/ctrlpauseover.jpg';
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   320
	    	this.playButton.onmouseover = function() {this.src='static/res/img/ctrlpauseover.jpg';}; 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   321
	    	this.playButton.onmouseout = function() {this.src='static/res/img/ctrlpause.jpg';};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   322
		}
19
26ab64495127 premièrs tests d'intégration
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 18
diff changeset
   323
		*/
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   324
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   325
		 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   326
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   327
	// Tools Functions
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   328
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   329
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   330
	this.logi = function(txt)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   331
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   332
		if (this.logiEnable) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   333
			console.log("info: " + txt);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   334
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   335
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   336
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   337
	this.loge = function(txt)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   338
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   339
		console.log("error: " + txt);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   340
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   341
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   342
	this.loadJson = function(jsonFile)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   343
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   344
		var txt = this.loadTxtFile(jsonFile);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   345
		return JSON.parse(txt);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   346
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   347
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   348
	this.loadTxtFile = function(jsonFile)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   349
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   350
		var xhr = new XMLHttpRequest();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   351
		xhr.open("GET", jsonFile, false);  
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   352
		xhr.overrideMimeType('text/plain; charset=x-user-defined');
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   353
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   354
		try {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   355
			xhr.send(null); 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   356
		} catch(e) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   357
			return "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   358
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   359
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   360
		if (xhr.status == 404) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   361
			return "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   362
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   363
		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   364
		var buffer;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   365
		if (xhr.responseType == "arraybuffer") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   366
			buffer = xhr.response;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   367
		} else if (xhr.mozResponseArrayBuffer === null) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   368
			buffer = xhr.mozResponseArrayBuffer;  
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   369
		} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   370
			buffer = xhr.response;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   371
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   372
		return buffer;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   373
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   374
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   375
	this.random = function(min, max)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   376
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   377
		return Math.floor((Math.random()*(max-min))+min);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   378
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   379
36
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   380
	this.secondsToTime = function(sec)
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   381
	{
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   382
		var minutes = Math.floor(sec / 60);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   383
		var seconds = Math.floor(sec - minutes * 60);
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   384
		if (seconds < 10) {
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   385
			seconds = "0" + seconds;
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   386
		}
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   387
		return "" + minutes + "'" + seconds + "''";
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   388
	};
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents: 19
diff changeset
   389
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   390
	this.sequenceToString = function(index)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   391
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   392
		return JSON.stringify(this.sequences[index]);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   393
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   394
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   395
	this.getSupportedVideoExt = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   396
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   397
		var v = document.createElement("video");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   398
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   399
		if (v.canPlayType) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   400
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   401
		    // Check for Ogg support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   402
		    if (this.preferOgg && v.canPlayType('video/ogg; codecs="theora"') !== "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   403
		    	return "ogg";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   404
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   405
		    
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   406
		    // Check for Webm support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   407
		    if (v.canPlayType('video/webm; codecs="vp8, vorbis"') !== "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   408
		    	return "webm";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   409
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   410
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   411
		    // Check for MPEG-4 support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   412
		    if (v.canPlayType('video/mp4; codecs="mp4v.20.8"' ) !== "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   413
				return "mp4";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   414
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   415
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   416
		    // Check for h264 support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   417
		    if ((v.canPlayType('video/mp4; codecs="avc1.42E01E"' ) !== "" || v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'))) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   418
		    	return "mp4";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   419
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   420
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   421
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   422
		return "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   423
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   424
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   425
	this.detectIOS = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   426
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   427
		var p = navigator.platform;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   428
		if (p === 'iPad' || p === 'iPhone' || p === 'iPod') {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   429
		    this.iOS = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   430
		}		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   431
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   432
}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   433
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   434
var incPlayer = new IncPlayer();