显示存储在文件目录中的所有视频(display all videos stored in docum

2019-09-19 06:05发布

我存储在从照片库中我的文档目录的视频。 现在我想显示其存储在我的文档目录中的所有影片..但我不知道它是如何可能的??? 其实我想显示所有视频像它在照片库中打开(在单排四个视频)..而当我在任何视频,请点击......该视频开始播放...

任何人可以帮助我这是为了显示从文件目录中的所有影片的ViewController的最佳途径....感谢名单......

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
 {
    NSURL * movieURL = [info valueForKey:UIImagePickerControllerMediaURL] ;
    NSData * movieData = [NSData dataWithContentsOfURL:movieURL];
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [documentPaths objectAtIndex:0];
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[[self imageNameTextField]text]];
    fullPath = [fullPath stringByAppendingFormat:@".MOV"];
    [ movieData writeToFile:fullPath atomically:YES]; 

}

Answer 1:

我建议你使用一个开源网格视图控件。 您可以在GitHub上找到它们。 例如, BDDynamicGridViewController很有趣。 但它不是唯一的选择。 还有AQGridView 。

另外,有一种流行的开源库,称为Three20和它有它的升级,被称为雨云。 该库中有照片显示网格自定义控件。 您可以用来显示视频缩略图网格相同。 例如,尝试这个 。

之后,您将设法使用或创建网格视图控件,您将需要为视频缩略图生成。 使用这个主题用于这一目的。



Answer 2:

要访问存储在您需要使用资产库中的设备上的照片库中的视频。 下面的代码演示了如何获得访问在照片库中的第一个视频:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];


// Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos.

[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {


// Within the group enumeration block, filter to enumerate just videos.

[group setAssetsFilter:[ALAssetsFilter allVideos]];


// For this example, we're only interested in the first item.

[group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:0] options:0

       usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) {

       // The end of the enumeration is signaled by asset == nil.

       if (alAsset) {

           ALAssetRepresentation *representation = [alAsset defaultRepresentation];

           NSURL *url = [representation url];

           AVAsset *avAsset = [AVURLAsset URLAssetWithURL:url options:nil];

           // Now you have the AV asset for the video.

        }

      }];

    }

     failureBlock: ^(NSError *error) {

     // Typically you should handle an error more gracefully than this.

     NSLog(@"No groups");

     }];


[library release];

这个例子是AVFoundation编程指南,更多的细节将在苹果开发者网站



Answer 3:

我也犯了同样的项目为我的客户之一。 我可以告诉你的想法,但水湿告诉你的代码。 我们的想法是同时服用或保存录像拍摄每个视频的起始帧,并保存为PNG图像作为视频的图标。 通过这种方式,您将获得每个视频的图标。 保存不同的文件夹中的所有图像,每个图像可与它的视频链接的方式。 现在,通过下面的代码检索文件夹中的所有视频

NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
filelist = [filemgr contentsOfDirectoryAtPath:path error:nil];

*文件清单:是的NSArray

以同样的方式获取的视频图标。

制作按钮的网格视图。 按钮的图像集为一体的视频图标。 显示视频名称。 当点击视频打开一个新的视图控制器,使视频播放器疗法播放视频出现。



文章来源: display all videos stored in document directory