Fix for play button bug, music now moves to the next song when finished, error shows... 87/5987/1 accepted/tizen/20130723.190821 accepted/tizen/20130729.202432 submit/tizen/20130723.185845 submit/tizen/20130723.194640 submit/tizen/20130729.210437
authorbrianjjones <brian.j.jones@intel.com>
Tue, 23 Jul 2013 00:43:29 +0000 (17:43 -0700)
committerbrianjjones <brian.j.jones@intel.com>
Tue, 23 Jul 2013 18:01:06 +0000 (11:01 -0700)
Signed-off-by: brianjjones <brian.j.jones@intel.com>
index.html
js/main.js
packaging/MediaPlayer.changes

index c40c57a..4c2dd47 100644 (file)
@@ -9,56 +9,56 @@
 -->
 <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>
index e88d246..bdc9ea6 100644 (file)
@@ -35,7 +35,9 @@ var imagesLoaded = false;
 var mediaListItemW;
 var mediaListItemH;
 var imageControls;
-
+var loadAndPlay = false;
+var loadTimer; 
+var currentFileLoaded = false;
 var mediaNameCanvas;
 var mediaNameCTX;
 
@@ -138,18 +140,22 @@ function updateMediaName(newArtist, newTitle, newCover)
                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;
                }
@@ -164,7 +170,7 @@ function updateMediaName(newArtist, newTitle, newCover)
 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;
@@ -206,9 +212,12 @@ function fillMediaList(contentList)
                        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)
                                {
@@ -219,6 +228,7 @@ function fillMediaList(contentList)
                        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();
@@ -233,6 +243,7 @@ function fillMediaList(contentList)
                        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);
@@ -311,6 +322,8 @@ function onContentItemArraySuccess(content)
                                        sortByAlpha(audioContent);
 
                                        $("#audioSrc").attr("src", audioContent[0].contentURI);
+                                       audioPlayer.load();
+                                       startLoadTimer();
 
                                        var imgSources = [];
                                        for (var i = 0; i < audioContent.length; i++)
@@ -458,6 +471,7 @@ function changeMenu(menuButtonId)
        switch(menuButtonId)
        {
        case ("mainMusicButton"):
+               currentMenu = "audio";
                currentPlayer = $("#audioPlayer");
                currentPlayerControls = document.getElementById("audioPlayer");
                currentPlayerType = "AUDIO";
@@ -466,6 +480,7 @@ function changeMenu(menuButtonId)
        break;
 
        case ("mainVideoButton"):
+               currentMenu = "video";
                currentPlayer = $("#videoPlayer");
                currentPlayerControls = document.getElementById("videoPlayer");
                currentPlayerType = "VIDEO";
@@ -474,6 +489,7 @@ function changeMenu(menuButtonId)
        break;
 
        case ("mainImageButton"):
+               currentMenu = "image";
                currentPlayer = $("#imagePlayer");
                currentPlayerControls = imageControls;
                currentPlayerType = "IMAGE";
@@ -488,6 +504,7 @@ function changeMenu(menuButtonId)
 
 function showMainMenu()
 {
+       currentMenu = "main";
        currentPlayerControls.pause();
 
        $("#playButton").attr("src","images/playButton.png");
@@ -572,18 +589,52 @@ function sortByAlbum(contentToSort)
 }
 /**************************************** 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()
@@ -598,12 +649,13 @@ 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;
 
@@ -656,11 +708,13 @@ function nextButtonClick()
                        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;
 
index 97beaa4..12e4825 100644 (file)
@@ -1,3 +1,7 @@
+* Mon Jul 22 2013 brianjjones <brian.j.jones@intel.com> submit/tizen/20130719.021058@4b5b477
+- Fix for play button bug, music now moves to the next song when finished, error shows up if filetype can't be loaded
+- More image shrinking
+
 * Wed Jul 17 2013 brianjjones <brian.j.jones@intel.com> submit/tizen/20130702.231722@8097a1e
 - Shrinking image sizes and removing hard coded reference to ogg