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, была проблема с ним, как показано ниже:
- Safari загрузил ссылку в виде файла MOV
- Файл был 433kb... довольно маленький
- Это заставило меня поверить, что загрузка Safari на самом деле была контейнером.mov.
- Пробовал копаться в коде сайта с помощью расширений Safari Developer
- Может только когда-либо загрузить контейнер.mov из Safari
То, что я скачал, было на самом деле контейнером, а НЕ реальным исходным фильмом, и это никогда не работало в C4, потому что это всегда была только ссылка на фильм, а не сам объект.
Итак, я воспользовался инструментами разработчика Chrome и смог сохранить файл в качестве исходного кода.
- Из Chrome файл сохранен как mp4 на 75,6 МБ
- Попытка загрузки файла непосредственно в проект 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
чтобы приложение не загружалось при загрузке фильма во время его открытия.
Хорошо, это может на самом деле не решить вашу проблему. Итак, я протестировал создание небольшого клипа из исходного файла большого фильма, выполнив следующие шаги:
- Откройте фильм в Quicktime
- Обрежьте фильм до 12-секундного клипа (начните обрезку, нажав cmd + t)
- Экспорт обрезанного фильма (cmd + shift + s или Файл> Экспорт)
- Выберите iPad, iPhone 4, Apple TV
- Экспорт M4V
- Перетащите его в мой исходный проект, переименуйте переменную в соответствии с новым файлом
- Оно работает!
Итак, я подозреваю, что первая часть этого ответа может быть там, где вы повесили трубку. Файл на самом деле не является фильмом, а указателем на какой-либо другой носитель. Причина, по которой я подумал об этом, заключается в том, что я вспомнил, что когда я экспортирую Movtime Quicktime для веб-сайта, он фактически создает папку мультимедиа с файлом.mov, который ссылается на некоторые другие мультимедийные файлы в другой папке.