web-dev-qa-db-ja.com

サムネイルのビデオスナップショットを取得する

Appleから提供されたAVCamコードを使用してiPhoneカメラからビデオを録画しています。

ビデオが記録された後、それは写真ライブラリに保存されます。

次に、新しいビューが読み込まれます。ここでは、ビデオの画像サムネイルが必要です。

私はビデオへの道を持っています:

file://localhost/private/var/mobile/Applications/ED45DEFC-ABF9-4A5E-9102-21680CC1448E/tmp/output.mov

ビデオの最初のフレームをサムネイルとして使用する方法がわからないようです。

どんな助けでも大歓迎です、そしてあなたの時間をありがとう。


[〜#〜]編集[〜#〜]

私はこれを使用することになりました、なぜそれが画像を横向きに返すのか分かりませんか?

- (UIImage*)loadImage {

    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil];
    AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    NSError *err = NULL;
    CMTime time = CMTimeMake(1, 60);
    CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];
    NSLog(@"err==%@, imageRef==%@", err, imgRef);

    return [[UIImage alloc] initWithCGImage:imgRef];

}
26
random

To fixサムネイルの向きは、appliesPreferredTrackTransformインスタンスでYESAVAssetImageGeneratorに設定します。独自のビデオコンポジションを追加する場合は、必要に応じてビデオを回転させるための適切な変換を含める必要があります。

generate.appliesPreferredTrackTransform = YES;

取得した画像参照をCGImageReleaseで解放することを忘れないでください。

複数のサムネイルをリクエストするには、generateCGImagesAsynchronouslyForTimes:completionHandler:と非同期で行うことをお勧めします。

45
djromero