【问题标题】:iPhone - picking a video... URL with two bars?iPhone - 选择一个视频......带有两个栏的 URL?
【发布时间】:2010-12-26 02:30:22
【问题描述】:

我有一个 UIPickerController 可以在我的应用程序中选择视频,但在使用选择器选择视频时它会崩溃。当我直接向 MPMoviePlayerController 提供 URL 时,它可以正常工作,但是当 URL 来自 UIPickerController 时,它会正确加载电影,但在创建缩略图时会崩溃。

在选择文件之后,我已将 URL 转储到控制台,这就是我所看到的

file://localhost/private/var/mobile/Applications/FA667F85-B009-46FA-A0B9-A7345A072651/tmp//trim.Ir0gqx.MOV

第一个问题:为什么文件名前有双杠? 第二个问题:如果我在选择器上编辑 NO,为什么文件名带有修剪前缀?

这是选择器代码:

- (void) selectMovie:(id) sender {

    if ([UIImagePickerController isSourceTypeAvailable:
         UIImagePickerControllerSourceTypePhotoLibrary]) {

        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        NSArray *mediaTypesAllowed = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

        picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
        picker.delegate = self;
        picker.allowsEditing = NO;
        picker.videoQuality = UIImagePickerControllerQualityTypeHigh; // I've added this trying to make it stop compressing the video, but it won't... any clues?


        UIPopoverController *aPopover = 
            [[UIPopoverController alloc] initWithContentViewController:picker];

        aPopover.delegate = self;


        CGRect myRect = [sender frame];

        [aPopover presentPopoverFromRect:myRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];

    }   
}



- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{
    NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];  

    if ( [ mediaType isEqualToString:@"public.movie" ]){
            movieURL =  [info objectForKey:UIImagePickerControllerMediaURL];
    } 

    NSLog(@"%@", movieURL);

    [self loadMovie:movieURL];

}

【问题讨论】:

  • file:// 是来自 UIPicker 还是来自您直接粘贴?
  • 它来自选择器...但奇怪的是文件名之前的末尾/...但它似乎是正确的。

标签: iphone ipad uiimagepickercontroller mpmovieplayercontroller


【解决方案1】:

我的想法是您的应用无权在存储电影的位置生成缩略图。尝试将电影文件从相册复制到您的文档目录中:

NSFileManager *fm = [NSFileManager defaultManager];
[fm moveItemAtURL:fromURL toURL:toURL error:&error];

假设您有一个 toURL 指向您的 docs 目录中的文件名。

【讨论】:

  • 我认为你的观点很好,当我读到它时,我确信这是正确的答案,但我已将文件从原始位置复制到 docs 位置,它仍然在缩略图期间崩溃创造...这个错误快把我逼疯了。
  • 我接受您的回答,因为它间接解决了问题。问题是无法将来自 SDk 的异步缩略图生成与选择器选择的视频一起使用。我现在正在使用同步方法并且它正在工作。谢谢sssssssssssssssssss!
【解决方案2】:

我只知道第一个,因为您需要向 MPMoviePlayerController 提供一个 url,一个 url 必须以一个方案开头,http://, smtp://,有点像。 file:// 也是文件 url 的方案

【讨论】:

    猜你喜欢
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多