6

で選択したビデオに関するデータを取得しようとしていUIImagePickerます。

したがって、デリゲート メソッド (以下) に入ると、情報辞書UIImagePickerのキーを使用する必要があることがわかります。UIImagePickerControllerReferenceURL

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];

    NSLog(@"%@",url);

    [library addAssetURL:[info objectForKey:UIImagePickerControllerReferenceURL] toAlbum:@"Compedia" withCompletionBlock:^(NSError *error) {
        if (error!=nil) {
            NSLog(@"Big error: %@", [error description]);
        }
    }];
}

問題は、URL が nil になることです。info の説明を印刷したところ、次のようになりました。

Printing description of info:
{
    UIImagePickerControllerMediaType = "public.movie";
    UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/6630FBD3-1212-4ED0-BC3B-0C23AEEFB267/tmp/capture-T0x1f57e880.tmp.Ulfn5o/capturedvideo.MOV";
}

いくつかの調査を行った後、カメラを設定するとkUTTypeMovie、メディアと参照 URL の両方が得られることがわかりました。

これが私のカメラの定義方法です:

cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];
cameraUI.allowsEditing = YES;
cameraUI.delegate = delegate;
cameraUI.showsCameraControls = NO;
cameraUI.cameraOverlayView = [self getCustomToolBar];

足りないものはありますか?

ありがとう、

4

2 に答える 2