У меня есть игра, работающая на iOS и Win32, написанная с использованием cocos2d-x c ++. Я также использую FMOD Studio для звука в игре.
Сейчас я портирую игру на Android, и у меня возникли проблемы с FMOD на Android. Я предполагаю, что проблема связана с загрузкой активов.
В настоящее время звуковая система успешно инициализируется. Я использую следующий код для загрузки банков, который работает на iOS и Windows:
void FMODWrapper::loadBank(const char * bankFile)
{
FMOD_RESULT result;
std::string path = FileUtils::getInstance()->fullPathForFilename(bankFile);
FMOD::Studio::Bank *bank;
if (path.size() > 0)
{
result = system->loadBankFile(path.c_str(), FMOD_STUDIO_LOAD_BANK_NORMAL, &bank);
if (result != FMOD_OK)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
LOGD("FMOD error! Unable to load bank: %s %d\n", path.c_str(), result);
#else
printf("FMOD error! Unable to load bank: %s\n", path.c_str());
#endif
}
_loadedBanks.push_back(bank);
}
}
Когда я запускаю это с отладочными библиотеками FMOD, я получаю следующий результат:
11-02 20:48: 50.173: I / fmod (2459): FMOD: AsyncCommand_system_loadBankFile :: executeMain: Не удалось открыть файл assets / Sound / MX_AND_SFX_MASTER_BANK.bank 11-02 20:48: 50.173: I / fmod (2459 ): ../../src/fmod_asynccommand_impl.cpp(443): Ошибка FMOD (20): Файл не найден. 11-02 20:48: 50.173: I / fmod (2459): FMOD: Debug_OutputTrace: ../../src/fmod_asynccommand_impl.cpp(443): ошибка FMOD (20): файл не найден.
assets / Sound / MX_AND_SFX_MASTER_BANK.bank верен в том, где находятся мои активы в моем проекте eclipse.
У кого-нибудь есть представление о том, что я должен передать вызову loadBankFile ().
Кроме того, я попытался использовать loadBankMemory с FileUtils :: getDataFromFile (). В результате воспроизводился звук, но это был просто шум. Так что не совсем то, что я ищу.