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 に答える