为什么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");
}

我不确定这是答案,但我以前遇到过这种情况。在我的案例中,原因是一个文件的编解码器只能由第三方插件支持(在我的案例中是Flip4Mac)。

加载状态通知不会被调用,直到影片自动播放结束(到任何地方)。对于长媒体文件,它实际上看起来就像从未调用通知,因为我们在测试代码时很少等待5分钟或一个小时的加载通知。对于用户来说,它看起来就像应用程序没有加载文件。

让用户在System Preferences中禁用插件的auto-play-on-load解决了这个问题,但不幸的是,这个支持FAQ我无法解决,因为有问题的应用程序的用户经常使用Flip4Mac来支持普通数字录音机的文件。

相关内容

  • 没有找到相关文章