2009-04-13 29 views
1

Cocoaで画面のNSImageをキャプチャするにはどうすればよいですか?スクリーンキャスティングアプリを作ろうとしているので、私は最速の方法を知る必要があります。ココア画面キャプチャ?

答えて

8

OpenGLCaptureToMovieサンプルを参照してください。私はあなたの代わりにQuartz Display Services' refresh-notification APIsを使用する必要があることを追加したいと思います。

OpenGLの例では、NSImageオブジェクトは生成されません。あなたはそれらを映画に入れることができないので、そうすることには意味がありません。さて、あなたは指定されたフレーム時間にNSImageを割り当てることができると思いますが、圧縮でどのくらいうまく動作するかわかりません。

圧縮といえば、最高品質のアニメーションコーデックを録音に使用してください。これは、ディスクを圧倒しないほど十分な圧縮を提供し、確かにプロセッサを圧倒することはありません。 H.264、iPhone用H.264、iPod用H.264などの変換オプションを提供することができます。また、ユーザーが元のファイルを保持できるようにする必要があります。 Vimeoなどの一部のサイトはそれを受け入れ、訪問者にダウンロードさせる。

+2

古い回答は古いです。今日では、CGWindowList APIを使用してキャプチャを行い、CGWindowListが遅すぎると判断した場合にのみOpenGLに切り替えます。 –

+0

古い回答へのこのアップデートのための@Peterありがとうございました。私はオープンソースのスクリーンレコードをやりたかったのですが、ucanが追加する新しい援助がありますか? :) – Noitidart

+1

@Noitidart:https://developer.apple.com/library/mac/documentation/Carbon/Reference/CGWindow_Reference/ –

関連する問題