可可屏幕捕捉?

时间:2009-04-13 05:23:30

标签: objective-c cocoa

如何在Cocoa中捕获屏幕的NSImage?我需要知道最快的方式,因为我正在尝试制作一个截屏视频应用程序。

1 个答案:

答案 0 :(得分:8)

请参阅OpenGLCaptureToMovie示例。我想补充一点,你应该使用Quartz Display Services' refresh-notification APIs而不是计时器。

请注意,OpenGL示例不会生成NSImage对象。这样做是没有意义的,因为你不能将它们放入电影中。好吧,我猜你可以在指定的帧时间分配一个NSImage,但我不知道它对压缩有多好。

说到压缩,请以最高质量使用动画编解码器进行录制。这提供了足够的压缩,以免压倒磁盘,当然也不会压倒处理器。然后,您可以提供转换选项,例如H.264,适用于iPhone的H.264和适用于iPod的H.264。您还应该允许用户保留原始文件;某些网站(例如Vimeo)会接受它并允许访问者下载它。