アセット ライブラリからサイズ 100 MB の動画をアップロードしようとしています。しかし、使用しようとする-(NSUInteger)getBytes:(uint8_t *)buffer fromOffset:(long long)offset length:(NSUInteger)length error:(NSError **)error
とALAssetRepresentation
、メモリがいっぱいのエラーが発生します。データをバッファに入れる必要もありますNSData
。どうすればそれを達成できますか?
2194 次
3 に答える
2
私はこの方法を試しました:
Byte *buffer = (Byte*)malloc(asset.defaultRepresentation.size);
NSUInteger k = [asset.defaultRepresentation getBytes:buffer fromOffset: 0.0
length:asset.defaultRepresentation.size error:nil];
NSData *adata = NSData *adata = [NSData dataWithBytesNoCopy:buffer
length:j freeWhenDone:YES];
それは実際に動作します!
于 2010-12-22T11:28:31.170 に答える
0
@autoreleasepool ブロックを追加して、自動リリースされたオブジェクトをクリーンアップする必要があります。ARCはiOS7以降に何か変更されたようです
@autoreleasepool {
NSUInteger readStatus = [rep getBytes:buffer fromOffset:_startFromByte length:chunkSize error:NULL];
}
于 2015-06-15T04:48:32.587 に答える