MPMoviePlayerController не воспроизводит видео-контент [из-за ARC и управления памятью]

Я пытаюсь воспроизвести видео в приложении iOS, используя MPMoviePlayerController, чтобы добавить просмотр фильма к существующему представлению, когда пользователь нажимает кнопку. Вид выглядит как черный ящик в правильном положении и все, но ничего не происходит. Я ожидаю, что фильм начнет проигрываться, но ничего не происходит, и в приложении нет подсказок о том, почему.

Кто-нибудь может увидеть, где это идет не так?

-(IBAction) playButtonClicked:(id)sender
{
    NSString* path = [[NSBundle mainBundle] pathForResource:@"sample_mpeg4" ofType:@"mp4"];
    NSLog(@"Using videoPath %@", path);
    NSURL* url = [NSURL fileURLWithPath:path];
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    [self.view addSubview:player.view];
    player.view.frame = CGRectMake(10, 10, 300, 220);
   [player play];

}

Фильм существует и записывает правильный путь, но фильм по-прежнему не воспроизводится.

2012-07-06 11:51:13.492 experiments[84702:12203] Using videoPath /Users/marius/Library/Application Support/iPhone Simulator/5.1/Applications/9799C851-8D2B-4CFE-8CFA-A4C4C954787F/experiments.app/sample_mpeg4.mp4

Из того, что я прочитал и понял, это должно работать. Любые советы или предложения о том, что попробовать?

Я переместил фильм на HTTP-сервер (fg.mp4) и веду логи доступа. При нажатии на кнопку воспроизведения появляется обычное черное окно. Серверная часть я нахожу две новые записи в журнале:

168.122.x.x - - [06/Jul/2012:22:42:33 +0200] "GET /fg.mp4 HTTP/1.1" 304 192 "-" "AppleCoreMedia/1.0.0.9B176 (iPhone Simulator; U; CPU OS 5_1 like Mac OS X; en_us)"
168.122.x.x - - [06/Jul/2012:22:42:33 +0200] "GET /fg.mp4 HTTP/1.1" 206 33304 "-" "AppleCoreMedia/1.0.0.9B176 (iPhone Simulator; U; CPU OS 5_1 like Mac OS X; en_us)"

Таким образом, телефон получает часть содержимого фильма и, по-видимому, готовится к получению остального при необходимости. Есть ли какой-то очевидный параметр для MPMoviePlayerController, который мне не хватает?

UPDATE: Solution and working code

Проблема вызвана ARC и тем, что нет ссылки наMPMoviePlayerController были сохранены после вызова метода настройки контроллера. Решение: добавьте переменную класса к классу и используйте ее, чтобы сохранить ссылку на контроллер на время жизни фильма.

Итак, в начале объявления класса (вне каких-либо определений сообщений / функций):

MPMoviePlayerController* mpController;

И вышеупомянутыйplayButtonClicked использует эту переменную для отслеживания контроллера:

NSString* path = [[NSBundle mainBundle] pathForResource:@"sample_mpeg4" ofType:@"mp4"];
NSURL* url = [NSURL fileURLWithPath:path];
mpController = [[MPMoviePlayerController alloc] initWithContentURL:url];
mpController.view.frame = CGRectMake(10, 10, 300, 220);
[self.view addSubview:mpController.view];
[mpController play];

Ответы на вопрос(2)

Ваш ответ на вопрос