2013-07-02 41 views
0

我正在爲Android設備搭建HTML5和Javascript手機遊戲。PhoneGap Android LowLatencyAudio插件不起作用

Android不支持HTML5音頻,這就是爲什麼我選擇使用PhoneGap的插件:https://github.com/phonegap/phonegap-plugins/tree/master/Android/LowLatencyAudio

我的結構非常簡單,我有3個對象。

  • 遊戲,這是我的主要對象。
  • 動畫,這是我的對象,所有的動畫都是我的精靈。
  • 聲音,我的所有聲音都被播放,循環或停止。

在這裏,我的index.html文件:

<!DOCTYPE HTML> 
<html> 
    <head> 
    <title>Test</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> 
    <meta charset="UTF-8" /> 
    <link rel="stylesheet" type="text/css" href="assets/css/style.css"> 
    <script type="text/javascript" charset="UTF-8" src="cordova.js"></script> 
    <script type="text/javascript" charset="UTF-8" src="PGLowLatencyAudio.js"></script> 
    <script type="text/javascript" charset="UTF-8" src="assets/js/src/pixi.js"></script> 
    <script type="text/javascript" charset="UTF-8" src="assets/js/game.js"></script> 
    <script type="text/javascript" charset="UTF-8" src="assets/js/sound.js"></script> 
    <script type="text/javascript" charset="UTF-8" src="assets/js/animation.js"></script> 
    <script type="text/javascript" charset="UTF-8"> 
     function onDeviceReady(){ 
      PGLowLatencyAudio.preloadFX('drum','assets/son/drum/drumPiste1.mp3', game.sound.successHandler, game.sound.errorHandler); 
     }; 
     function onBodyLoad(){ 
      document.addEventListener("deviceready",onDeviceReady,false); 
     }; 
    </script> 
</head> 
<body onload="onBodyLoad()"> 
    <div id="wrapper"></div> 
    <script type="text/javascript" charset="UTF-8"> 
     game.init(); 
     game.sound.init(); 
     game.animation.init(); 
    </script> 
</body> 

我使用該插件的PGLowLatencyAudio.preloadFX功能,預裝我的MP3文件。

後,我打電話給我的我的目標聲音的init功能,這就是這個樣子:

game.sound = { 

    init: function(){ 
     soundsArray = []; 
     game.sound.playSound(); 
    }, 

    successHandler: function(result){ 
     alert(result); 
    }, 

    errorHandler: function(error){ 
     alert(error); 
    }, 

    playSound: function(){ 
     PGLowLatencyAudio.play('drum', game.sound.successHandler, game.sound.errorHandler); 
    }, 

}; 

在我init功能,我把我的playSound功能,發揮我先前已經預載的聲音。

它試圖播放聲音之前preload,但我不明白爲什麼。

錯誤消息是:A reference does not exist for the specified audio id

回答

1

這裏是link,我之前跟蹤過類似的項目。 它有問題的解決方案!

+0

太好了,我的問題已解決。謝謝你的回答。 但現在,我又遇到了另一個問題。 我無法用'preloadAudio'函數預載聲音,它不起作用。我可以用'preloadFX'函數來完成。 – Lilrom

+0

@Lilrom - 我給你的鏈接也有解決方案。 – MAST3RMIND