为什么QTMovieLoadStateDidChangeNotification没有触发?

时间:2013-05-02 23:27:07

标签: cocoa qtkit

我发现在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");
}

1 个答案:

答案 0 :(得分:1)

我不确定这是 的答案,但我之前遇到过这个问题。我的案例中的原因是一个文件,其编解码器仅由第三方插件支持(在我的情况下为Flip4Mac)。

在电影自动播放(无处)之后,才会调用加载状态通知。对于长媒体文件,它实际上看起来像是从不调用通知,因为我们在测试代码时很少等待5分钟或1小时的加载通知。对于用户来说,应用程序似乎只是没有加载文件。

让用户在系统偏好设置中禁用插件的自动播放加载解决了这个问题,但遗憾的是这个支持常见问题我无法解决,因为相关应用的用户经常使用Flip4Mac来支持来自普通数字的文件录音机。