0

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

4

1 に答える 1

1

これは、以前に同様のプロジェクトでたどったリンクです。問題の解決策があります。

于 2013-07-03T08:54:01.303 に答える