From f8a91e88da5777174920d840afb8541fef751b1f Mon Sep 17 00:00:00 2001 From: brianjjones Date: Tue, 27 Aug 2013 17:00:05 -0700 Subject: [PATCH] Adding tizen.speech (voice control) support. Change-Id: I92270abf4429526009864b8eabfbb37144bc7a40 Signed-off-by: brianjjones --- config.xml | 2 +- js/main.js | 80 ++++++++++++++++++++++++++++++++++++++++++- packaging/MediaPlayer.changes | 3 ++ 3 files changed, 83 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index c644111..8536249 100644 --- a/config.xml +++ b/config.xml @@ -4,7 +4,7 @@ MediaPlayer + - diff --git a/js/main.js b/js/main.js index bdc9ea6..c94be64 100644 --- a/js/main.js +++ b/js/main.js @@ -36,10 +36,11 @@ var mediaListItemW; var mediaListItemH; var imageControls; var loadAndPlay = false; -var loadTimer; +var loadTimer; var currentFileLoaded = false; var mediaNameCanvas; var mediaNameCTX; +var speechObj; var mainMenuTitleTemplateLandscape = {"font" : "oblique bolder 30pt arial", "lineWidth" : 9.5, "fillStyle" : "black", "strokeStyle" : "white", "textAlign" : "left", "largeShadow" : 8, "shadowOffsetX" : 0, "shadowOffsetY" : 0, "shadowBlur" : 45, "shadowColor" : "rgba(255, 187, 0, 0.4)"}; @@ -76,6 +77,71 @@ function onError() console.log("Content discovery failed"); } +function setupSpeech() +{ + speechObj = tizen.speech; + + try + { + var speechEventListener = { + onaudiostart: function(){console.log("MediaPlayer: onaudiostart received");}, + onsoundstart: function(){console.log("MediaPlayer: onsoundstart received");}, + onspeechstart: function(){console.log("MediaPlayer: onspeechstart received");}, + onspeechend: function(){console.log("MediaPlayer: onspeechend received");}, + onsoundend: function(){console.log("MediaPlayer: onsoundend received");}, + onaudioend: function(){console.log("MediaPlayer: onaudioend received");}, + onresult: function(result){ + + console.log("MediaPlayer: onresult received"); + + for (var i = 0; i < result.length; i++) + { + console.log("MediaPlayer: forloop, command = " + result[i]); + var commandFound = false; + + switch(result[i]) + { + case "play": + playButtonClick(); + commandFound = true; + break; + case "next": + nextButtonClick(); + commandFound = true; + break; + case "previous": + backButtonClick(); + commandFound = true; + break; + case "stop": + case "pause": + pauseButtonClick(); + commandFound = true; + break; + default: + break; + } + + if (commandFound) + break; + } + }, + onnomatch: function(result){console.log("MediaPlayer: onnomatch received ");}, + onerror: function(error){console.log("MediaPlayer: onerror received");}, + onstart: function(){console.log("MediaPlayer: onstart received");}, + onend: function(){console.log("MediaPlayer: onend received");} + } + + speechObj.setCBListener(speechEventListener); + + } + catch(err) + { + console.log("MediaPlayer setupSpeech FAILED + " + err.message); + } + +} + function loadImages(callback) { var loadedImages = 0; @@ -637,6 +703,15 @@ function playButtonClick() alert(audioContent[listIndex].artists[0] + " : " + audioContent[listIndex].title + " failed to load, please select another file"); } +function pauseButtonClick() +{ + if (!currentPlayerControls.paused) + { + currentPlayerControls.pause(); + $("#playButton").attr("src","images/playButton.png"); + } +} + function backButtonClick() { switch (currentPlayerType) @@ -846,6 +921,9 @@ function init() //Resize all items and search for local media resizeAll(); + + setupSpeech(); + getMedia(contentType); //Prevent highlighting diff --git a/packaging/MediaPlayer.changes b/packaging/MediaPlayer.changes index 12e4825..c9321ec 100644 --- a/packaging/MediaPlayer.changes +++ b/packaging/MediaPlayer.changes @@ -1,3 +1,6 @@ +* Tue Aug 27 2013 brianjjones submit/tizen/20130723.194640@f68855f +- Adding tizen.speech (voice control) support. + * Mon Jul 22 2013 brianjjones 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 -- 2.7.4