C4Movie не загружается

Я пытался добавить мувиклип в проект, но он просто не работает. Я убедился, что файл *.mov существует в каталоге файлов.

Но если я попытаюсь добавить начальный клип в movieNamed:@"blahblah.mov", он отлично работает.

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

Может, возможно, объяснить проблему?

Вот код

#import "C4WorkSpace.h"

C4Movie *movie;

@implementation C4WorkSpace

-(void)setup {
    movie = [C4Movie movieNamed:@"thinkdifferent.mov"];
    movie.width = self.canvas.width;
    CGPoint centerOfScreen = CGPointMake(self.canvas.width/2, self.canvas.height/2);
    movie.center = centerOfScreen;
    [self.canvas addMovie:movie];
}

@end

Вот изображение среды кода с ошибкой:

введите описание изображения здесь

И прямая ссылка на изображение: Error Image

1 ответ

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

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

  1. Safari загрузил ссылку в виде файла MOV
  2. Файл был 433kb... довольно маленький
  3. Это заставило меня поверить, что загрузка Safari на самом деле была контейнером.mov.
  4. Пробовал копаться в коде сайта с помощью расширений Safari Developer
  5. Может только когда-либо загрузить контейнер.mov из Safari

То, что я скачал, было на самом деле контейнером, а НЕ реальным исходным фильмом, и это никогда не работало в C4, потому что это всегда была только ссылка на фильм, а не сам объект.

Итак, я воспользовался инструментами разработчика Chrome и смог сохранить файл в качестве исходного кода.

  1. Из Chrome файл сохранен как mp4 на 75,6 МБ
  2. Попытка загрузки файла непосредственно в проект C4, и это сработало.

У меня работает следующий код:

#import "C4WorkSpace.h"

@implementation C4WorkSpace {
    C4Movie *m;
}

-(void)touchesBegan {
    if(m == nil) {
        m = [C4Movie movieNamed:@"iPhone.mp4"];
        m.shouldAutoplay = YES;
       [self.canvas addMovie:m];
     }
}

@end 

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


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

  1. Откройте фильм в Quicktime
  2. Обрежьте фильм до 12-секундного клипа (начните обрезку, нажав cmd + t)
  3. Экспорт обрезанного фильма (cmd + shift + s или Файл> Экспорт)
  4. Выберите iPad, iPhone 4, Apple TV
  5. Экспорт M4V
  6. Перетащите его в мой исходный проект, переименуйте переменную в соответствии с новым файлом
  7. Оно работает!

Итак, я подозреваю, что первая часть этого ответа может быть там, где вы повесили трубку. Файл на самом деле не является фильмом, а указателем на какой-либо другой носитель. Причина, по которой я подумал об этом, заключается в том, что я вспомнил, что когда я экспортирую Movtime Quicktime для веб-сайта, он фактически создает папку мультимедиа с файлом.mov, который ссылается на некоторые другие мультимедийные файлы в другой папке.

Другие вопросы по тегам