【问题标题】:PhoneGap Android LowLatencyAudio plugin doesn't workPhoneGap Android LowLatencyAudio 插件不起作用
【发布时间】:2013-07-02 18:35:36
【问题描述】:

我正在使用 HTML5 和 Javascript 为 Android 设备构建手机游戏。

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 函数来播放我之前预加载的声音。

它尝试在预加载之前播放声音,但我不明白为什么。

错误信息是:A reference does not exist for the specified audio id

【问题讨论】:

    标签: javascript android audio plugins phonegap-plugins


    【解决方案1】:

    这是link,我之前在类似项目中关注过它。 它有解决问题的方法!

    【讨论】:

    • 太好了,我的问题解决了。谢谢解答。但是现在,我遇到了另一个问题。我无法使用preloadAudio 功能预加载声音,它不起作用。我可以使用 preloadFX 函数来完成。
    • @Lilrom - 我给你的链接也有解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多