我看到在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");
}
我不确定这是答案,但我以前遇到过这种情况。在我的案例中,原因是一个文件的编解码器只能由第三方插件支持(在我的案例中是Flip4Mac)。
加载状态通知不会被调用,直到影片自动播放结束(到任何地方)。对于长媒体文件,它实际上看起来就像从未调用通知,因为我们在测试代码时很少等待5分钟或一个小时的加载通知。对于用户来说,它看起来就像应用程序没有加载文件。
让用户在System Preferences中禁用插件的auto-play-on-load解决了这个问题,但不幸的是,这个支持FAQ我无法解决,因为有问题的应用程序的用户经常使用Flip4Mac来支持普通数字录音机的文件。