同步播放两个QTMovie

时间:2010-11-02 19:04:13

标签: objective-c cocoa qtkit

我有一个Cocoa应用程序,应该完全同步播放两个不同的QTMovie对象。这两部电影的分辨率,大小等都相同,但可能有不同的长度。电影是压缩的,它们必须是多线程的。

我目前的方法是:

NSMutableDictionary *movieAttributes1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                         [NSNumber numberWithBool:NO], QTMovieOpenAsyncOKAttribute,
                                         [NSNumber numberWithBool:YES], QTMovieOpenForPlaybackAttribute,
                                         nil];

[movieAttributes1 setValue:pathOfFile1 forKey:QTMovieFileNameAttribute];

NSMutableDictionary *movieAttributes2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                         [NSNumber numberWithBool:NO], QTMovieOpenAsyncOKAttribute,
                                         [NSNumber numberWithBool:YES], QTMovieOpenForPlaybackAttribute,
                                         nil];

[movieAttributes2 setValue:pathOfFile2 forKey:QTMovieFileNameAttribute];


QTMovie* leftMovie = [QTMovie movieWithAttributes:movieAttributes1 error:nil];
QTMovie* rightMovie = [QTMovie movieWithAttributes:movieAttributes2 error:nil];

....

[leftMovie play];
[rightMovie play];

在播放按钮ClickHandler中完成。

在10个案例中有9个可行,但有时电影是异步播放的。我也确定它们会在高CPU负载的情况下变得异步。

有什么想法吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

我不相信在API中有任何支持的方法。您可能需要定期同步它们。

要执行此操作,请设置一个计时器,将第二部电影的精确时间设置为每秒或半秒的精确时间。如果要么超过另一个的最大持续时间,请停止计时器并使其正常运行。