读书人

取得视频

发布时间: 2013-03-25 15:43:04 作者: rapoo

获得视频

- (void)updateAssetsLibrary{loadImgView.hidden = NO;[spinner startAnimating];//selectVideoBtn .userInteractionEnabled = NO;assetItems = [NSMutableArray arrayWithCapacity:0];ALAssetsLibrary *assetLibrary = assetsLibrary;[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {    if (group)    {        [group setAssetsFilter:[ALAssetsFilter allVideos]];        [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)        {             if (asset)             {                 dic = [[NSMutableDictionary alloc] init];                 ALAssetRepresentation *defaultRepresentation = [asset defaultRepresentation];                 NSString *uti = [defaultRepresentation UTI];                 appDelegate.videoURL = [[asset valueForProperty:ALAssetPropertyURLs] valueForKey:uti];                 mpVideoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:appDelegate.videoURL];                 NSString *title = [NSString stringWithFormat:@"%@ %i", NSLocalizedString(@"Video", nil), [assetItems count]+1];                 [self performSelector:@selector(imageFromVideoURL)];                 [dic setValue:title forKey:kName];                 [dic setValue:appDelegate.videoURL forKey:kURL];                 AssetBrowserItem *item = [[AssetBrowserItem alloc] initWithURL:appDelegate.videoURL title:title];                 [assetItems addObject:item];                 [appDelegate.videoURLArray addObject:dic];                 NSLog(@"Video has info:%@",appDelegate.videoURLArray);             }             NSLog(@"Values of dictonary==>%@", dic);             //NSLog(@"assetItems:%@",assetItems);             NSLog(@"Videos Are:%@",appDelegate.videoURLArray);        } ];    }    // group == nil signals we are done iterating.    else     {        dispatch_async(dispatch_get_main_queue(), ^{            //[self updateBrowserItemsAndSignalDelegate:assetItems];            loadImgView.hidden = NO;            [spinner stopAnimating];            [loadImgView removeFromSuperview];            //selectVideoBtn .userInteractionEnabled = YES;        });    }}failureBlock:^(NSError *error) {    NSLog(@"error enumerating AssetLibrary groups %@\n", error);}];}- (UIImage *)imageFromVideoURL {// result UIImage *image = nil;// AVAssetImageGeneratorAVAsset *asset = [[AVURLAsset alloc] initWithURL:appDelegate.videoURL options:nil];; AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];imageGenerator.appliesPreferredTrackTransform = YES;// calc midpoint time of videoFloat64 durationSeconds = CMTimeGetSeconds([asset duration]);CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds/2.0, 600); // get the image from NSError *error = nil; CMTime actualTime;CGImageRef halfWayImage = [imageGenerator copyCGImageAtTime:midpoint actualTime:&actualTime error:&error];if (halfWayImage != NULL) {    // cgimage to uiimage    image = [[UIImage alloc] initWithCGImage:halfWayImage];    [dic setValue:image forKey:kImage];    NSLog(@"Values of dictonary==>%@", dic);    NSLog(@"Videos Are:%@",appDelegate.videoURLArray);    CGImageRelease(halfWayImage);}return image;}- (void)assetsLibraryDidChange:(NSNotification*)changeNotification{[self updateAssetsLibrary];}- (void)buildAssetsLibrary{assetsLibrary = [[ALAssetsLibrary alloc] init];ALAssetsLibrary *notificationSender = nil;NSString *minimumSystemVersion = @"4.1";NSString *systemVersion = [[UIDevice currentDevice] systemVersion];if ([systemVersion compare:minimumSystemVersion options:NSNumericSearch] != NSOrderedAscending)    notificationSender = assetsLibrary;[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(assetsLibraryDidChange:) name:ALAssetsLibraryChangedNotification object:notificationSender];[self updateAssetsLibrary];}

?

读书人网 >移动开发

热点推荐