Утечки памяти Cocos2d : SimpleAudioEngine

Много утечек памяти в игре Cocos2D для iphone. Я использовал эти вызовы для воспроизведения музыки и эффектов.

введите здесь описание изображения

введите здесь описание изображения

[[SimpleAudioEngine sharedEngine]  preloadEffect:kSoundTap];

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:kMusic_LaunchScreen] ;

[[SimpleAudioEngine sharedEngine] playEffect:kSound_GettingPowerUp] ;

Что-то не так или нужно что-то выпустить? В iPad3, если я играю больше времени, возникает много проблем с производительностью ... В инструменте обнаружены только эти утечки. Как я могу решить эту проблему ?

Вот еще один похожий поток, но нет принятого решения. Как я могу преодолеть эту проблему?


person Guru    schedule 24.02.2013    source источник
comment
Не могли бы вы открыть View/Extended Detail и проверить стек вызовов? есть ли что-нибудь, связанное с вашим кодом для любой из этих утечек?   -  person sergio    schedule 24.02.2013
comment
попробуйте позвонить [SimpleAudioEngine end] после воспроизведения ваших звуков и проверьте, продолжают ли инструменты сообщать об утечках. NB: это просто ради тестирования и сбора дополнительной информации — я не предлагаю вам делать это, чтобы исправить утечки.   -  person sergio    schedule 24.02.2013
comment
если я помещу эти две строки, то произойдет сбой: [[SimpleAudioEngine sharedEngine] playEffect:kSoundTap] ; [конец SimpleAudioEngine];   -  person Guru    schedule 24.02.2013
comment
end должен быть выполнен после того, как ваши звуки проиграны - если вы заинтересованы в тестировании этого. с другой стороны, если это кажется вам сложным, вы можете просто создать тестовый проект и воспроизвести два звука, проверяя на инструментах, есть ли утечки...   -  person sergio    schedule 24.02.2013
comment
Я только что сделал один образец, поместил отдельную кнопку в конец. Но опять течи те же...   -  person Guru    schedule 24.02.2013
comment
все в порядке ... Я могу заменить AVAudioPlayer на SimpleAudioEngine, пока они не решат свою проблему. Пока   -  person Guru    schedule 24.02.2013


Ответы (1)


Не сохраняйте и не освобождайте объекты AVAudioPlayer. Вместо этого вы должны end сессию. Из того, что я могу сказать по инструментам на втором снимке экрана в выделенной строке, событие является «выпуском», но, согласно документации, события AVAudioPlayer не должны выпускаться (или сохраняться).

person Albert Renshaw    schedule 25.02.2013