-->
<html>
<head>
- <title>Media Player</title>
- <link rel="stylesheet" href="css/main.css">
- <script src="js/jquery-1.9.1.min.js"></script>
+ <title>Media Player</title>
+ <link rel="stylesheet" href="css/main.css">
+ <script src="js/jquery-1.9.1.min.js"></script>
<script src="js/main.js"></script>
<script src="js/textObject.js"></script>
<script src="js/imageControls.js"></script>
</head>
- <body>
+ <body>
<div id="background"></div>
<div id="mainMenuButtons">
<img id="mainMusicButton" class="mainButton" src="images/musicButton.png" onClick="changeMenu(this.id)">
<img id="mainVideoButton" class="mainButton" src="images/videoButton.png" onClick="changeMenu(this.id)">
<img id="mainImageButton" class="mainButton" src="images/imageButton.png" onClick="changeMenu(this.id)">
- </div>
-
+ </div>
+
<div id="navigationButtons" style="position:absolute; visible:hidden">
- <!-- <div id="mediaName" ><font size="8" color="#F00"></font></div> -->
+ <!-- <div id="mediaName" ><font size="8" color="#F00"></font></div> -->
<img id="backButton" class="navButton" src="images/backButton.png" onClick="backButtonClick()" style="position:absolute; display: none">
<img id="nextButton" class="navButton" src="images/nextButton.png" onClick="nextButtonClick()" style="position:absolute; display: none">
<img id="returnButton" class="navButton" src="images/returnButton.png" onClick="showMainMenu()" style="position:absolute; display: none">
<img id="listButton" class="navButton" src="images/listIcon.png" onClick="showMediaList()" style="position:absolute; display: none">
<img id="playButton" class="navButton" src="images/playButton.png" onClick="playButtonClick()" style="position:absolute; display: none">
-
- </div>
-
+
+ </div>
+
<div id="sortButtons">
<img id="sortAllButton" class="sortButton" src="images/allButton.png" onClick="sortByAlpha()" style="display: none">
<img id="sortArtistButton" class="sortButton" src="images/artistButton.png" onClick="sortByArtist()" style="display: none">
<img id="sortAlbumButton" class="sortButton" src="images/albumButton.png" onClick="sortByAlbum()" style="display: none">
- </div>
-
- <canvas id="mediaName" style="position:absolute; z-index : 0"></canvas>
+ </div>
+
+ <canvas id="mediaName" style="position:absolute; z-index : 0"></canvas>
+
-
-
- <audio id="audioPlayer" class="player" >
-
- <source id=audioSrc>
+
+ <audio id="audioPlayer" class="player" onended="nextButtonClick()" oncanplaythrough="playLoadedMedia()">
+
+ <source id=audioSrc type="audio/mpeg">
</audio>
-
- <video id="videoPlayer" onClick="playButtonClick()" class="player" >
- <source id=videoSrc>
+
+ <video id="videoPlayer" onClick="playButtonClick()" class="player">
+ <source id=videoSrc>
</video>
<div id="imagePlayer" onClick="nextButtonClick()" class="player"></div>
-
+
<div id="mediaList">
- <ul id=mediaListItems>
+ <ul id=mediaListItems>
</ul>
- </div>
-
+ </div>
+
</body>
</html>
var mediaListItemW;
var mediaListItemH;
var imageControls;
-
+var loadAndPlay = false;
+var loadTimer;
+var currentFileLoaded = false;
var mediaNameCanvas;
var mediaNameCTX;
if (screenOrientation === "portrait")
{
var textStartX = boxWidth + 50;
- var trackText = new TextObject(mediaNameCTX,{"text" : newTitle, "xLoc" : textStartX, "yLoc" : 70 , "zLoc" : 0, "width" : mediaNameCanvas.width - textStartX, "height" : 50, "lineHeight" : 50, "wordWrap" : true});
+ var trackText = new TextObject(mediaNameCTX,{"text" : newTitle, "xLoc" : textStartX, "yLoc" : 70 , "zLoc" : 0,
+ "width" : mediaNameCanvas.width - textStartX, "height" : 50, "lineHeight" : 50, "wordWrap" : true});
trackText.applyTemplate(mainMenuTitleTemplate);
- var artistText = new TextObject(mediaNameCTX,{"text" : newArtist, "xLoc" : textStartX, "yLoc" : 70 + trackText.height, "zLoc" : 0, "width" : mediaNameCanvas.width - textStartX, "height" : 50, "lineHeight" : 50, "wordWrap" : true});
+ var artistText = new TextObject(mediaNameCTX,{"text" : newArtist, "xLoc" : textStartX, "yLoc" : 70 + trackText.height, "zLoc" : 0,
+ "width" : mediaNameCanvas.width - textStartX, "height" : 50, "lineHeight" : 50, "wordWrap" : true});
artistText.applyTemplate(mainTrackTemplate);
artistText.yLoc = 70 + trackText.height;
}
else
{
var textStartX = boxWidth + 50;
- var trackText = new TextObject(mediaNameCTX,{"text" : newTitle, "xLoc" : textStartX, "yLoc" : 50 , "zLoc" : 0, "width" : mediaNameCanvas.width - textStartX, "height" : 30, "lineHeight" : 30, "wordWrap" : true});
+ var trackText = new TextObject(mediaNameCTX,{"text" : newTitle, "xLoc" : textStartX, "yLoc" : 50 , "zLoc" : 0,
+ "width" : mediaNameCanvas.width - textStartX, "height" : 30, "lineHeight" : 30, "wordWrap" : true});
trackText.applyTemplate(mainMenuTitleTemplateLandscape);
- var artistText = new TextObject(mediaNameCTX,{"text" : newArtist, "xLoc" : textStartX, "yLoc" : 50, "zLoc" : 0, "width" : mediaNameCanvas.width - textStartX, "height" : 30, "lineHeight" : 30, "wordWrap" : true});
+ var artistText = new TextObject(mediaNameCTX,{"text" : newArtist, "xLoc" : textStartX, "yLoc" : 50, "zLoc" : 0,
+ "width" : mediaNameCanvas.width - textStartX, "height" : 30, "lineHeight" : 30, "wordWrap" : true});
artistText.applyTemplate(mainTrackTemplateLandscape);
artistText.yLoc = 50 + trackText.height;
}
function fillMediaList(contentList)
{
//Don't try and fill an empty content list or an audio list that hasn't finished loading the thumbnails
- if (contentList.length <=0 || (contentList === audioContent && !imagesLoaded))
+ if (contentList === undefined || contentList === null || contentList.length <=0 || (contentList === audioContent && !imagesLoaded))
return false;
var iconURI;
case "AUDIO":
try
{
+ $("#playButton").attr("src","images/playButton.png");
+ loadAndPlay = true;
updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt);
$("#audioSrc").attr("src", audioContent[listIndex].contentURI);
audioPlayer.load();
+ startLoadTimer();
}
catch(err)
{
case "VIDEO":
try
{
+ $("#playButton").attr("src","images/playButton.png");
updateMediaName(videoContent[listIndex].artists[0], audioContent[listIndex].title, vidIcon);
$("#videoSrc").attr("src", videoContent[listIndex].contentURI);
videoPlayer.load();
case "IMAGE":
try
{
+ $("#playButton").attr("src","images/playButton.png");
$("#imagePlayer").css("background", "url(" + imageContent[listIndex].contentURI + ") no-repeat center");
$("#imagePlayer").css("background-size", "contain");
$("#mediaList").fadeOut(300);
sortByAlpha(audioContent);
$("#audioSrc").attr("src", audioContent[0].contentURI);
+ audioPlayer.load();
+ startLoadTimer();
var imgSources = [];
for (var i = 0; i < audioContent.length; i++)
switch(menuButtonId)
{
case ("mainMusicButton"):
+ currentMenu = "audio";
currentPlayer = $("#audioPlayer");
currentPlayerControls = document.getElementById("audioPlayer");
currentPlayerType = "AUDIO";
break;
case ("mainVideoButton"):
+ currentMenu = "video";
currentPlayer = $("#videoPlayer");
currentPlayerControls = document.getElementById("videoPlayer");
currentPlayerType = "VIDEO";
break;
case ("mainImageButton"):
+ currentMenu = "image";
currentPlayer = $("#imagePlayer");
currentPlayerControls = imageControls;
currentPlayerType = "IMAGE";
function showMainMenu()
{
+ currentMenu = "main";
currentPlayerControls.pause();
$("#playButton").attr("src","images/playButton.png");
}
/**************************************** NAVIGATION FUNCTIONS *******************************************/
-function playButtonClick()
+function startLoadTimer()
{
- if (currentPlayerControls.paused)
+ if (loadTimer !== undefined)
+ clearTimeout(loadTimer);
+
+ loadTimer = setTimeout(
+ function(){
+ if (currentMenu != "main")
+ $("#playButton").attr("src","images/playButton.png");
+ alert("File failed to load! - " + audioContent[listIndex].artists[0] + " : " + audioContent[listIndex].title);
+ currentFileLoaded = false;
+ }, 5000);
+}
+
+function playLoadedMedia()
+{
+ currentFileLoaded = true;
+
+ if (loadTimer !== undefined)
+ clearTimeout(loadTimer);
+
+ if (loadAndPlay)
{
currentPlayerControls.play();
$("#playButton").attr("src","images/pauseButton.png");
+ loadAndPlay = false;
}
- else
+}
+
+function playButtonClick()
+{
+ if (currentFileLoaded)
{
- currentPlayerControls.pause();
- $("#playButton").attr("src","images/playButton.png");
+ if (currentPlayerControls.paused)
+ {
+ currentPlayerControls.play();
+ $("#playButton").attr("src","images/pauseButton.png");
+ }
+ else
+ {
+ currentPlayerControls.pause();
+ $("#playButton").attr("src","images/playButton.png");
+ }
}
+ else
+ alert(audioContent[listIndex].artists[0] + " : " + audioContent[listIndex].title + " failed to load, please select another file");
}
function backButtonClick()
else
listIndex = imageContent.length - 1;
+ loadAndPlay = true;
audioPlayer.pause();
- $("#playButton").attr("src","images/playButton.png");
$("#audioSrc").attr("src", audioContent[listIndex].contentURI);
updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt);
audioPlayer.load();
+ startLoadTimer();
}
break;
else
listIndex = 0;
+ loadAndPlay = true;
audioPlayer.pause();
- $("#playButton").attr("src","images/playButton.png");
+
$("#audioSrc").attr("src", audioContent[listIndex].contentURI);
updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt);
audioPlayer.load();
+ startLoadTimer();
}
break;