2

我正在使用 adobe air 为 android 开发一个简单的游戏,但是在设备上播放它时声音效果有一些延迟。我检查了声音(mp3 文件)是否在开始时有任何静音,但声音文件没有任何静音。所以我想我可以开发一个 ANE 来播放声音并避免音频延迟。现在 ANE 的问题是它在尝试访问 mp3 文件时会引发 IO 错误。我是创建 ANE 的新手,但无法正常工作。我在 res/raw 文件夹中有名为 snd.mp3 的 mp3 文件,我将 res 文件夹复制到 Android-ARM 文件夹,并将 ANE 与sounds.jar 和 library.swf 一起打包。我SoundPool用来播放声音。

我试图通过将字符串传递给加载函数来访问声音SoundPool

sp.load("android.resource://" +
        freContext.getActivity().getPackageName() +  
        freContext.getResourceId("raw.snd"));

然而,resourceId 给出了一个唯一的数字,表明声音文件存在,但我无法播放声音。我也试过了MediaPlayer,它是一样的。它抛出 IO 错误。有什么我做错或遗漏的事情吗?任何帮助,将不胜感激。提前致谢。

4

1 回答 1

0

您需要在包名称和资源 ID 之间添加一个斜杠:

sp.load("android.resource://" +
        freContext.getActivity().getPackageName() + "/" +
        freContext.getResourceId("raw.snd"));
于 2015-06-30T09:14:43.290 回答