我有一个 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 负载高的情况下它们会变得异步。
有任何想法吗?非常感谢。