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
。
太好了,我的問題已解決。謝謝你的回答。 但現在,我又遇到了另一個問題。 我無法用'preloadAudio'函數預載聲音,它不起作用。我可以用'preloadFX'函數來完成。 – Lilrom
@Lilrom - 我給你的鏈接也有解決方案。 – MAST3RMIND