适用于 Android 的 Adobe 原生扩展以播放声音
Posted
技术标签:
【中文标题】适用于 Android 的 Adobe 原生扩展以播放声音【英文标题】:Adobe native extension for Android to play sounds 【发布时间】:2015-07-11 16:34:57 【问题描述】:我正在使用 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 错误。有什么我做错或遗漏的事情吗?任何帮助,将不胜感激。提前致谢。
【问题讨论】:
【参考方案1】:您需要在包名和资源 ID 之间添加一个斜杠:
sp.load("android.resource://" +
freContext.getActivity().getPackageName() + "/" +
freContext.getResourceId("raw.snd"));
【讨论】:
以上是关于适用于 Android 的 Adobe 原生扩展以播放声音的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Adobe Air Mobile 的 Android 原生扩展中包含额外的 Jar
如何使用 Adobe AIR 在 Android 中使用原生 java 代码制作应用程序?