1

私はLionの画面記録アプリに取り組んでいます。このアプリは主にLionの新しいAVCaptureScreenInputクラスを使用して、画面上の指定されたrectの画面ビデオストリームを取得します。

アクティビティモニターによると、電話をかけるたびsetCropRect:に、メモリ使用量が10〜20Mb増加します。録音中にrectのサイズを変更できる機能を提供しているので、ユーザーがrectを頻繁に変更すると、メモリ使用量が1〜2Gbに増加する可能性があります。

それがAppleのSDKのバグであるかどうかを真剣に疑っています。したがって、AppleのサンプルコードAVScreenShackの例にもこの問題があります。

私のコードは次のようなものです。

[m_AVCaptureSession beginConfiguration];
[m_AVScreenInput setCropRect:CGRectMake((int)grabRect.origin.x, (int)grabRect.origin.y,(int)grabRect.size.width, (int)grabRect.size.height)];
 [m_AVCaptureSession commitConfiguration];

SDKのバグであるか、間違った方法で使用したか、または別のクラスを使用してこれを行う必要があるかどうか、誰かに教えてもらえますか?THX

4

1 に答える 1

0

構成トランザクションを開いて変更を行い、すぐに変更をコミットしているので、トランザクションを省略しないでください。記録セッションが完了するまで、ライブラリがトランザクション メモリのクリーンアップを遅らせる可能性があります。構成更新のグループをアトミックにする必要がない限り、構成トランザクションを使用する必要はないと思います。

または、それは本物の漏れかもしれません。

于 2011-11-04T18:30:41.083 に答える