MPMoviePlayerController на больших видео вызывает резкий всплеск памяти и предупреждение о памяти уровня 1.

При просмотре изображений мое приложение хорошо работает с низким потреблением памяти, как только я пытаюсь посмотреть видео с помощью MPMoviePlayerController, использование памяти резко возрастает, затмевая предыдущий график памяти, и если я воспроизвожу видео, это вызывает «предупреждение о памяти». Уровень=1' сообщение. Видеофайлы (mp4) даже не такие большие, 40 МБ или около того, и не имеет значения, воспроизведу ли я файл, переданный с URL-адреса, или загруженный из локального файла, на самом деле всплеск памяти еще хуже, если я попытаюсь транслировать это.

Вот код, который я использую для создания плеера:

        if (_photo.videoPath != nil) {
            _movieViewController=[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:_photo.videoPath]];
        } else {
            _movieViewController=[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:_photo.videoURL]];
        }

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoMetaListener:)
                                                     name:MPMovieDurationAvailableNotification object:_movieViewController.moviePlayer];
        _movieViewController.moviePlayer.scalingMode=MPMovieScalingModeAspectFit; 
        _movieViewController.moviePlayer.shouldAutoplay = YES;
        _movieViewController.moviePlayer.controlStyle = MPMovieControlStyleEmbedded;

Кто-нибудь еще сталкивался с проблемами при воспроизведении видео? Также я проверил на наличие утечек, о них не сообщается.


person Shizam    schedule 11.04.2010    source источник


Ответы (2)


Оказывается, это ошибка симулятора. На устройстве использование памяти в норме.

person Shizam    schedule 18.05.2010

Да, я тоже получаю эту ошибку. Но я только пытаюсь загрузить небольшой файл размером 7 МБ с нашего сайта. Моя проблема, кажется, еще на один шаг, так как видео даже не воспроизводится. Видео загружается, и вы можете искать видео с помощью полосы прокрутки, но оно не воспроизводится. Если вы нажмете кнопку воспроизведения, он сразу остановится. Я боролся с этой проблемой уже неделю и ничего не нашел в своих поисках в Интернете. Мне очень нужно найти способ воспроизвести это видео. Кстати, это универсальное приложение, просто проблемы с iPad. Мое создание MPMoviePlayerViewController в основном идентично вашему, указанному выше. Видео без проблем воспроизводится в симуляторе, но совершенно не воспроизводится на устройстве! Я даже несколько раз перекодировал видео с различными настройками, чтобы убедиться, что проблема не в этом. Сейчас я использую видео 480x360, H.264 Baseline L3.0, с AAC/LC Audio на частоте 44,1 кГц. Все они соответствуют спецификациям воспроизведения видео как на iPhone, так и на iPad. Если я упустил какую-либо ключевую информацию, дайте мне знать, но я хотел попытаться предоставить как можно больше. Я надеюсь, что кто-то там может пролить свет на это. Спасибо.

person Symo    schedule 06.05.2010
comment
Выяснилось, что на устройстве память освобождается правильно, значит, это ошибка симулятора. Что касается вашей проблемы «она не будет воспроизводиться на устройстве», у меня впервые возникла эта проблема вчера вечером, видео не воспроизводилось на iPad моего генерального директора, но отлично воспроизводилось на обоих моих iPad. Оказалось, если я сделал полный сброс на его iPad, все исправилось, попробуйте. - person Shizam; 18.05.2010