утечка памяти в библиотеке AudioToolbox AVAudioPlayer - PullRequest
1 голос
/ 06 февраля 2011

Есть ли проблема с запуском памяти у объекта AVAudioPlayer?Я получаю утечку памяти при использовании AVAudioPlayer в симуляторе.Неважно, как я создал AVAudioPlayer.Я использовал initWithContentsOfURL и InitWithData.Ниже приведен фрагмент кода.Полный проект @ Github https://github.com/docchang/MemoryLeakAVAudioPlayer

NSError *error;
NSURL *playerURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Bell" ofType:@"m4a"]];   
self.playerWithURL = [[AVAudioPlayer alloc] initWithContentsOfURL:playerURL error:&error];
if (!playerWithURL) {
    NSLog(@"no %@.%@: %@",@"Introduction2", @"m4a", [error localizedDescription]);  
}
playerWithURL.volume = 0.9f;
playerWithURL.numberOfLoops = 0;
[playerWithURL play];

Однако при тестировании на устройстве утечки памяти нет.Эта проблема начинает склоняться к проблеме с библиотекой AudioToolBox, но просто хочу подтвердить это с помощью stackoverflow.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011

Я получаю ту же утечку памяти при использовании AVAudioPlayer.Я видел несколько сообщений о подобных случаях утечки с библиотеками AVAudioPlayer и VideoPlayer по всему Интернету.Похоже, проблема с самой библиотекой (виновата Apple):

  1. iPhone: утечка OpenAL & AudioToolbox
  2. https://appcelerator.lighthouseapp.com/projects/32238/tickets/1992-ios-strange-behavior-and-intermittant-mem-leak-on-embedded-video-test-case

Редактировать: Также видно, как утечка исчезает при запуске цели на устройстве.

0 голосов
/ 22 февраля 2018

Просто запустил тест, так как у меня возникла та же проблема. Инструменты показывали утечку в начале приложения, когда звук воспроизводился с использованием AVAudioPlayer. Он был зарегистрирован только один раз в начале. Звуки, сгенерированные впоследствии, больше не имели утечек.

Когда я запускал ту же сборку приложения на своем iPhone с помощью инструментов, утечки не было вообще.

Я использую iOS 11.2.5, а цель развертывания XCode - 11.0

Похоже, что это просто ошибка XCode, но она может быть связана с MacOS.

...