Android デバイス用の HTML5 と Javascript を使用してモバイル ゲームを作成しています。
Android は HTML5 オーディオをサポートしていないため、phonegap プラグインを使用することにしました:
私の構造は非常に単純で、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
以前にプリロードしたサウンドを再生します。
プリロード前にサウンドを再生しようとしますが、理由がわかりません。
エラー メッセージ: A reference does not exist for the specified audio id
。