Подтвердить что ты не робот

Плюсы и минусы MPMoviePlayerController против запуска UIWebView для потокового фильма

У меня есть клиент, у которого есть видеоконтент для Интернета в формате Flash. Моя задача - помочь им показать видео в приложении для iPhone.

Я понимаю, что первый шаг состоит в том, чтобы получить эти видео в соответствующий формат Quicktime для iPhone.

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

Моя главная забота, однако, заключается в том, какой подход к потоку видео. Каковы плюсы и минусы MPMoviePlayerController против запуска UIWebView с URL-адресом потока? Есть ли разница? Один из них более или менее прощает? Является ли один из них лучшим пользовательским интерфейсом? Любые ошибки, с которыми я мог столкнуться?

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

4b9b3361

Ответ 1

UIWebView не может воспроизводить видео. Переход на страницу Youtube с помощью UIWebview просто запустит приложение iPhone Youtube. Выполнение этого определенного способа вернет управление вашему приложению после воспроизведения видео. См. Здесь: http://iphoneincubator.com/blog/tag/uiwebview

Я бы рекомендовал использовать MPMoviePlayer Controller, если вы просто делаете простое потоковое вещание. Вот пример кода для начала работы:

NSString *url = @"http://www.example.com/path/to/movie.mp4";
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
                                        initWithContentURL:[NSURL URLWithString:url]];
[moviePlayer play];

Ответ 2


EDIT: Мой оригинальный пример в этом ответе инициализировал веб-просмотр рамкой CGRectZero. Это сработало до iOS 3.2. Начиная с iOS 4, веб-просмотр должен иметь ненулевой фрейм или видео не воспроизводится. Я отредактировал свой пример ниже, чтобы отразить это изменение.


Принятый ответ здесь неточен. Фактически вы можете использовать UIWebView для потоковой передачи видео, а в некотором смысле это лучше, чем MPMoviePlayerController. Если вы скажете UIWebView запросить видеофайл (например, mp4) через loadRequest: он откроет новое окно и потоковое видео в вашем приложении. В отличие от MPMoviePlayerController, видео-окно, созданное UIWebView, может поворачиваться в альбомной или портретной ориентации. Когда видео заканчивается, пользователь может закрыть это окно и вернуться в ваше приложение.


EDIT 2: Поскольку теперь вы можете использовать видеоплеер, который вращается с помощью MPMoviePlayerViewController, я больше не могу думать о причине использовать UIWebView для видео, используя технику, описанную в этом ответе.


Подсказка: поскольку UIWebView создает собственное окно для воспроизведения видео, вам даже не нужно добавлять UIWebView в свою иерархию представлений. Вы можете просто создать объект UIWebView и вызвать loadRequest: для воспроизведения видео, не передавая объект в addSubview:.

self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];