2013-05-02 4 views
1

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

В awakeFromNib:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(movieLoadStateDidChange:) 
              name:QTMovieLoadStateDidChangeNotification 
              object:nil]; 

На погрузочной фильме:

NSNumber *num = [NSNumber numberWithBool:YES]; 
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys: 
url, QTMovieURLAttribute, 
nil]; 

self.mQTMovie1 = [[QTMovie alloc] initWithAttributes:attributes 
               error:&error]; 

Также

- (void)movieLoadStateDidChange:(NSNotification *)notification { 
NSLog(@"movieLoadStateDidChange got called"); 
} 
+0

Просто ли распределение и инициализация фильма изменяет его состояние загрузки? Возможно, вам придется предварительно прокатать его или воспроизвести для изменения состояния? – user1118321

+0

Не в соответствии с документами. – martinjbaker

ответ

1

Я не уверен, что это ответ, но я столкнулся с этим до. Причиной в моем случае был файл, кодек которого поддерживался только сторонним плагином (Flip4Mac в моем случае).

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

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

+0

Это со стандартными кодеками, такими как ProRes и Animation. Это вызывало проблемы с настройкой фильма на QTMovieLayer, так как запрос состояния загрузки говорил, что он был загружен, но он не рисовался на экране. В конце концов я взломал за 0,2 секунды до того, как установил фильм QTMovieLayer, и все хорошо :-) – martinjbaker

 Смежные вопросы

  • Нет связанных вопросов^_^