【问题标题】:Phonegap: sounds playing in simulator but not in iPadPhonegap:声音在模拟器中播放,但不在 iPad 中
【发布时间】:2012-03-08 08:29:45
【问题描述】:

我有这个 Phonegap 应用程序,它应该在某些事件上播放音频文件。在 iPad 模拟器中尝试该应用程序时会听到此音频,但在合适的 iPad 上却听不到(而且我肯定会听到其他声音)

我在 head 部分包含了 phonegap*.js:

<head>
    <meta name = "viewport" content = "user-scalable=no,width=device-width" />
    <script 
        type="text/javascript" charset="utf-8" 
        src="scripts/phonegap-1.3.0.js">
    </script>
    <script 
        type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" >
    </script>
</head>

这是播放音频文件的函数:

function playAudio(audio_file) {
    switch (audio_file) {
    case 'right':
        new Media('media/audio/right.wav').play();
        break;
    case 'timer' :
        new Media('media/audio/timer.wav').play();
        break;
    case 'complete':
        new Media('media/audio/complete.wav').play();
        break;
    }
}

一些很简单的东西。没有奇怪的格式,只有 wavs。可能是没有为设备正确定义路径的原因吗?请记住:它们在模拟器中工作。即使在 Safari 中,它们也会引发“错误:尝试在 'deviceready' 之前调用 PhoneGap.exec()。忽略。”,所以它们被调用了。

【问题讨论】:

  • 我还没有使用 PhoneGap,但在我看来,Media 对象找不到 .wav 文件。如果有任何方法可以查询它们是否已成功加载或找到媒体文件,您应该在播放它们之前这样做。
  • “错误:尝试在'deviceready'之前调用PhoneGap.exec()。忽略”是一种症状吗?还是来自不同的测试场景?如果这是一个症状,这似乎很明显 - 竞争条件,phonegap 还没有准备好。
  • 媒体对象能够在 iPad 模拟器中找到这些文件,但我会尝试查询它们并提供一些视觉反馈以防万一 - 感谢 Michael 的想法。
  • djna,不,只是 Safari 不知道如何处理 PhoneGap。这只是一个探测这些行是否被正确调用。

标签: ipad audio cordova


【解决方案1】:

尝试将您的声音转换为 mp3。此外,您可能想要本地化您的 jQuery。您实际上需要连接才能使您的应用正常工作...

【讨论】:

  • 你说得对,我必须将 jQuery 放在本地文件中。我以为我已经这样做了;)我会尝试使用 mp3 并报告​​。
  • 对不起,德鲁,它没用。还没有声音。我只是不知道我做错了什么——而且我确信我的第一个测试完美无缺。知道它在模拟器中工作更令人费解! :(
  • 这很奇怪。这是我以前用过的——playing = new Media("sounds/"+s+'.mp3'); playing.play();s 是我的声音文件名。也许尝试做一些类似的事情 - 而不是在声明声音时设置播放使其可变,然后将 play() 应用于那个?
  • 不,还没有声音。我这里的选项用完了......我什至尝试在玩之前创建它们,尽管作为一个全局变量。我会在调用 play() 之前尝试一下
猜你喜欢
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 2015-02-11
  • 2023-01-29
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多