Утечка памяти iPhone из AudioToolbox при использовании MPMoviePlayerViewController iOS 4.2 - PullRequest
5 голосов
/ 22 февраля 2011

Я использую следующий код (внутри контроллера представления в приложении панели вкладок) для воспроизведения видео, загруженного из основного комплекта после того, как пользователь выбирает строку таблицы.

- (void)loadMoviePlayer:(NSString*)moviePath
{
    NSURL* fileURL    =   [[NSURL alloc] initFileURLWithPath:moviePath];

    MPMoviePlayerViewController* player = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
    [fileURL release];

    [self presentMoviePlayerViewControllerAnimated:player];
    [player release];
}

Приложение создает иработает без каких-либо явных проблем в симуляторе (я еще не тестировал на устройстве), но когда я запускаю его через Instruments, происходит утечка памяти во время воспроизведения видео.Инструменты выделяют AudioToolbox как «Ответственную библиотеку», а SimAggregateDevice::SimAggregateDevice(_CFString const*, _CFString const*, long&) и

APComponent::CreateDispatchTable(AudioComponentPluginInterface*, unsigned long)

как «Ответственные кадры».

Любой свет, который вы можете пролить на это, будет оченьоценили!Благодаря.

Ответы [ 2 ]

0 голосов
/ 18 января 2013

Проблема не в самом "симуляторе", а в фреймворке AVFoundation, скомпилированном для Mac OS X. - Алекс Никол 17 августа '11 в 23: 53

I 'Я устанавливаю этот комментарий Алекса как принятый ответ.K

0 голосов
/ 10 сентября 2011

Вы также можете создать свой собственный элемент управления для проигрывателя фильмов для iPhone и iPad, где вы можете создать настраиваемое управление громкостью и многое другое.

Следующий метод запуска проигрывателя moview. для управления мов

-(void)initAndPlayMovie:(NSURL *)movieURL andViewController:(UIViewController*)vCtr
{
    self.mPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
    // we have movie from file - Alizee :)
    [self.mPlayer.moviePlayer setMovieSourceType:MPMovieSourceTypeFile];

    // we don't need standard controlls as we have built our own
    [self.mPlayer.moviePlayer setControlStyle:MPMovieControlStyleNone];

    // aspect fit to screen  mode
    [self.mPlayer.moviePlayer setScalingMode:MPMovieScalingModeAspectFit];

    // full screen mode
    [self.mPlayer.moviePlayer setFullscreen:YES animated:YES];

    // to start movie player
    [vCtr presentMoviePlayerViewControllerAnimated:self.mPlayer];

    // now we will add our own view over video player
    self.vCtr.view.frame=CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);

    [self.mPlayer.view addSubview:self.vCtr.view];
}

- (void)stopTapped:(id)sender{
    [self.mPlayer.moviePlayer stop];
}

-(void)moviePlayBackDidFinish:(NSNotification*)notification
{
    [self.mPlayer dismissMoviePlayerViewControllerAnimated];
    [self.vCtr.view removeFromSuperview];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...