0

参考リンク:

http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios

ビデオ フレームを選択し、以下のデリゲート (didFinishPickingMediaWithInfo) メソッドを使用してビデオを保存します。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    // 1 - Get media type
    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    // 2 - Dismiss image picker
    [self dismissModalViewControllerAnimated:NO];
    // Handle a movie capture
    if (CFStringCompare ((__bridge_retained CFStringRef)mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo) {
        // 3 - Play the video
        MPMoviePlayerViewController *theMovie = [[MPMoviePlayerViewController alloc] 
            initWithContentURL:[info objectForKey:UIImagePickerControllerMediaURL]];
        [self presentMoviePlayerViewControllerAnimated:theMovie];
        // 4 - Register for the playback finished notification
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:)
            name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie];

 if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) {
            UISaveVideoAtPathToSavedPhotosAlbum (moviePath,self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
        }
    }
}

ビデオがどのようにトリミングされ、モバイル ローカルに保存されているかを知りたいです。以下のパスにファイルが保存されています。NSDictionary メディア URL でこれらの値を取得しています。

Path ::: {
    UIImagePickerControllerMediaType = "public.movie";
    UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/3175A4BD-F24F-4745-B7AE-FBA4B9EBE90D/tmp//trim.zuyfI0.MOV";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.MOV?id=740204CB-EE25-4A83-992A-F46115FC5B9F&ext=MOV";
}

ビデオを保存する前に、 currentPlaybackRate を変更したいですか? 誰かが実装するアイデアを提供できますか?

4

1 に答える 1

1

theMovie.currentPlaybackRate = /* your value */;再生中にタイム スケールを変更したいだけの場合は、これを行うことができます。ビデオを別の時間スケールで実際に保存したい場合は、 AV Foundationに飛び込む必要があります。

于 2013-07-03T04:42:08.287 に答える