【发布时间】:2015-06-10 21:55:48
【问题描述】:
在 Cocos2d-x (3.6) 中,我正在尝试向 SimpleAudioEngine 添加更多功能。具体来说,关于 Android 的 SoundPool(SimpleAudioEngine 至少基于 Android),我正在尝试添加一些尚未实现但在 Android Developer 网站中记录的方法。
例如,SoundPool 的 play 方法包括一个 int 类型的循环变量,而在 SimpleAudioEngine 中它是 bool 类型(Java 端的布尔值)。如果我能实现一个新方法,循环变量为int类型,我就可以在调用playEffect方法时直接控制重复次数。
我已经弄清楚了大部分所需的更改,包括各种 C++ 头文件和 .cpp 文件(cocos/audio/include/SimpleAudioEngine.h、cocos/audio/android/cddSimpleAudioEngine.cpp、cocos/audio/android/jni/ cddandroidAndroidJavaEngine.h 和 cocos/audio/android/jni/cddandroidAndroidJavaEngine.cpp) 以及 Cocos2dxSound.java 文件,但我仍然收到错误消息,提示找不到我的新方法(我称之为 playEffectN)。
我可以看到可能需要添加的唯一其他地方是在 cocos/audio/openal/SimpleAudioEngineOpenAL.cpp 文件中,但我不太确定如何修改它以添加我的新方法。
谁能指出我还需要做什么才能将这个附加功能添加到 SimpleAudioEngine 的正确方向?如果我成功了,我会很乐意分享结果。 (如果成功,我还可以在 SoundPool 中添加一些其他未实现的方法,例如 setLoop、setPriority、setRate 和 setVolume,用于已分配 soundID 的声音。)
【问题讨论】:
标签: java android c++ audio cocos2d-x