ビデオ ファイルを NSData にロードしたいのですが、dataWithContentsOfFile: を使用すると、ファイルが大きすぎると多くのメモリが消費されます。オフセットと長さを含むファイルの特定のデータを取得するにはどうすればよいですか。動画ファイルを分割してアップロードする必要があります。
質問する
1220 次
3 に答える
1
これ
NSData *data = [NSData dataWithContentsOfMappedFile:<path>];
NSRange first4k = {0, MIN([data length], 4096)};
return [data subdataWithRange:first4k];
すべてをロードせずに、ファイルの最初の 4k のみを提供します。
ただし、dataWithContentsOfMappedFile: は iOS5 で廃止されました。
私は推測します - 警告: 未テスト! -
+ (id)dataWithContentsOfURL:(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr
マスクを
NSDataReadingMappedIfSafe
また
NSDataReadingMappedAlways
仕事もするべきです。
しかし、それはiOS5で新しくなりました。
于 2012-05-16T08:47:33.287 に答える
0
Cocoa is my Girlfriend の参考になりそうな記事はこちら
数週間前、Matt Long はアプリのメモリ不足の問題を抱えていました。彼はロードして処理する必要のある膨大なデータ ファイルを持っていましたが、そのメモリ ヒットはアプリが耐えられる以上のものでした。それは NSData に問題なくロードされますが、彼がそれを完了する前に、アプリはメモリ不足になり、終了します。
于 2013-02-12T16:57:48.297 に答える