2014-11-03 1 views
1

iOS에서 실행중인 게임과 Win32에서 cocos2d-x C++로 작성한 게임이 있습니다. 나는 또한 게임에서 사운드를 위해 FMOD Studio를 사용한다.Android 및 cocos2d-x에서 FMOD 사운드 뱅크 로딩

이제 게임을 Android로 이식하고 있으며 Android에서 FMOD에 문제가 있습니다. 문제가 자산로드와 관련 있다고 가정합니다.

현재 사운드 시스템이 성공적으로 초기화됩니다.

11-02 20시 48분 :

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 디버그 libs와 함께이 프로그램을 실행할 때 : I는 iOS 및 윈도우에서 작동 은행을로드하려면 다음 코드를 사용 : 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) : 파일에 이 없습니다.

에셋/사운드/MX_AND_SFX_MASTER_BANK.bank는 내 애플릿 프로젝트가 어디에 머물러 있는지에 관계 없습니다.

누구나 내가 loadBankFile() 호출에 전달해야하는 것에 대한 통찰력이 있습니다.

또한 FileUtils :: getDataFromFile()에서 loadBankMemory를 사용해 보았습니다. 이로 인해 소리가 나지 만 소음이었습니다. 그래서 내가 바라는 것이 아닙니다. /// android_asset/

답변

0

그것은 그 자원에 액세스 할 수, 자산이 APK에 기록되고있는 가능성이 높습니다 파일로 파일 경로를 앞에 /// android_asset/cocos2dx과 나를 위해 문제를 해결 이 경우 외부 라이브러리 인 fmod를 사용하려고합니다.