2012-05-28 1 views
1

개발하지 않은 기존 앱에서 작업 중이며 FMOD를 사용하여 오디오를 재생합니다.iOS - FMOD를 사용하는 여러 앱 - 오디오는 실행할 첫 번째 앱에서만 작동합니다.

이전 버전의 앱에는 AVAudioPlayer 대신 사용하도록 작성되었으며, 둘 중 하나를 사용할 빌드 옵션이 있습니다.

대부분의 최신 버전은 FMOD 버전을 사용하여 빌드 할 때 많은 기능이 포함되기 때문에 FMOD를 사용합니다.

기존 앱 중 하나를 먼저 사용하고 개발중인 새로운 앱을 실행하려고하면 문제가 발생합니다.

하나의 앱을 실행 한 다음 백그라운드에두고 두 번째 앱을 실행하면 두 번째 앱의 사운드가 전혀 재생되지 않습니다. 첫 번째 앱으로 돌아가 문제없이 사운드를 재생할 수 있습니다. 두 앱을 모두 종료하고 다른 앱을 먼저 시작하면 완벽하게 작동합니다.

AVAudioPlayer 옵션을 사용하여 앱을 빌드하면이 문제가 발생하지 않지만 FMOD 버전 용으로 작성된 모든 기능은 없습니다. 따라서 FMOD와 관련이 있다는 것을 증명할 수는 있지만 무엇을 알아낼 수는 없습니다.

편집 : 좀 더 파고했을, 나는이 FMOD 오류 받고 있어요 : 나는 실행할 때, 첫째

을 : result = fmodSystem->init(4, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, NULL);

내가 오류 51 얻을 - "A 소켓 오류가 발생했습니다. 이것은 다른 곳에서는 열거하지 않은 소켓 관련 오류를 포착하는 것입니다. " 내가 도망 둘째

:
result = fmodSystem->createSound((const char *)[audioData bytes], FMOD_SOFTWARE | FMOD_OPENMEMORY, &exinfo, &fmodSound);
내가 얻을 오류 79-은 "시스템 :: 초기화 또는 시스템 :: setDriver가 호출되지 않았기 때문에 명령이 실패했습니다."

초기화가 실패했기 때문에 두 번째 것으로 보입니다.

답변

3

이것은 트위터를 통해 답변되었으므로 여기에 답을 직접 입력하겠습니다.하지만 스튜어트가 여기에 답변하고 싶다면 대답으로 투표 할 것입니다. 즉, 한 번에 하나의 응용 프로그램에서 실행할 수 있기 때문에, FMOD_INIT_ENABLE_PROFILE을 :
result = fmodSystem->init(4, FMOD_INIT_NORMAL, NULL);

:
result = fmodSystem->init(4, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, NULL);

이 될해야 : 따라서

이,

대답은 비활성화하는 것입니다