Выпуск .. с воспроизведением видео на iPad с MPMoviePlayerViewController - PullRequest
1 голос
/ 07 мая 2010

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

Я использую MPMoviePlayerViewController для воспроизведения видео на iPad. Основная проблема заключается в том, что он работает БЕСПЛАТНО на iPad Simulator, но не будет играть на iPad вообще. Я попытался перекодировать видео, чтобы убедиться, что это не проблема. В настоящее время я использую видео размером 480x360, кодированное с H.264 Basline 3.0 с аудио AAC / LC . Видео отлично воспроизводится на iPhone, а также воспроизводится через Safari на iPad. Видео на самом деле загружается, и вы можете просмотреть видео с помощью полосы прокрутки и увидеть, что оно там есть. Кадры действительно отображаются, но просто не воспроизводятся. Если вы нажмете кнопку воспроизведения, он сразу же остановится. Даже когда я установил mp.moviePlayer.shouldAutoplay=YES, вы можете видеть, что игрок пытается играть, но только на долю секунды (может быть, 1 кадр?).

Я попытался просто добавить представление со следующим кодом:

in .h
------
MPMoviePlayerViewController          *vidViewController;
@property (readwrite, retain)     MPMoviePlayerViewController *vidViewController;

in .m
------

MPMoviePlayerViewController *mp=[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:videoURL]];
[mp shouldAutorotateToInterfaceOrientation:YES];
mp.moviePlayer.scalingMode=MPMovieScalingModeAspectFit;
mp.moviePlayer.shouldAutoplay=YES;
mp.moviePlayer.controlStyle=MPMovieControlStyleFullscreen;
[videoURL release];


self.vidViewController = mp;
[mp release];

[self.view addSubview:vidViewController.view];

float w = self.view.frame.size.width;
float h = w * 0.75;

self.vidViewController.view.frame = CGRectMake(0, 0, w, h);

Я также только что попытался сделать:

[self presentMoviePlayerViewControllerAnimated:self.vidViewController];

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

Если кому-то нужна дополнительная информация, просто дайте мне знать. Я почти сошел с ума по этому поводу. ЛЮБАЯ помощь будет высоко оценена.

Ответы [ 3 ]

2 голосов
/ 30 июня 2010

Я вижу 2 проблемы здесь.

Сначала вы не устанавливаете рамку вида. Попробуйте добавить

mp.view.frame = self.view.frame;

Это то, что исправило это для меня.

Далее shouldAutorotateToInterfaceOrientation вызывать не нужно. Этот метод просто сообщает вам, поддерживает ли представление ориентацию. Проверьте документы Apple.

1 голос
/ 08 мая 2010

Вы можете попробовать выключить iPad (выключить питание), удалить и переустановить приложение.

0 голосов
/ 08 мая 2010

Просто добавьте строку после добавления проигрывателя фильмов в представление:

[self.vidViewController.moviePlayer play];

Посмотрите, поможет ли это.

Спасибо,

Madhup

...