2

我浏览了 SO 并找不到这个问题的有效答案。我已经使用 ALAssets 创建了一个自定义图像选择器,但现在它不是常规的图像选择器,因此没有视频的自动压缩。

这就是我从资产中获取视频 NSData 的方式:

    ALAssetRepresentation *rep = [asset defaultRepresentation];
    Byte *buffer = (Byte*)malloc(rep.size);
    NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
    data = [[NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES] retain];

现在的问题是,当我选择一个大的视频文件时,应用程序崩溃了,因为它收到了内存警告。无论如何压缩视频甚至修剪视频文件不会那么大?

4

1 回答 1

1

我对大视频也有同样的问题。您应该重复地将少量字节从资产复制到缓冲区中,并将其附加到视频数据中。

于 2012-09-20T13:11:33.503 回答