#iphone #objective-c #xcode
#iPhone #objective-c #xcode
Вопрос:
Я работаю над приложением панели вкладок, которое имеет три вида — один из видов представляет собой табличный вид, строки которого привязаны к видео на нашем сервере.
Я использую класс MPMoviePlayerController, чтобы попытаться их обслуживать. Моя проблема в том, что видео отлично запускается и воспроизводится на моем iPhone, но на моем iPodTouch все, что я получаю, это черный экран — ни элементов управления, ни видео.
Вот код, который я использую для запуска рассматриваемых видеороликов:
NSURL * url = [NSURL URLWithString:@"http://209.85.225.147/AbCoaster.mp4"];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
Есть идеи, почему это отлично работает на одном устройстве, но не на другом?
Заранее спасибо.
Ответ №1:
После беглого взгляда кажется, что это должно сработать (и работает в 4.3). Я быстро поискал в Google MPMoviePlayerController iOS 4.2 и нашел эту ссылку, которая представляет собой журнал изменений для iOS 4.1-4.2.
http://developer.apple.com/library/ios/#releasenotes/General/iOS42APIDiffs/index.html
Если вы прокрутите вниз и посмотрите на изменения в MPMoviePlayerController, вы увидите, что в версии 4.2 Apple удалила метод [MPMoviePlayerController play]. Должно быть, функциональность была добавлена обратно в библиотеку в версии 4.3. Я бы попробовал установить для [MPMoviePlayerController shouldAutoPlay] значение true. Это свойство сообщит о запуске видео, как только в буфере будет достаточно буферизованного видео, чтобы обеспечить непрерывное воспроизведение.
Если это не сработает, возможно, вы не сможете указать автоматическое воспроизведение видео.
Удачи!
Комментарии:
1. Большое спасибо, что указали на CyberKnoy08 — это, безусловно, имеет смысл. Я попытался вызвать метод shouldAutoPlay, как вы предложили, но, похоже, все та же проблема.