zoukankan      html  css  js  c++  java
  • IOS 获取设备本地音视频

    1、检索音视频

    PHFetchOptions *allPhotosOptions;
    @property (nonatomic, strong) PHFetchResult *assetsFetchResults;
    if (allPhotosOptions == nil) {
            
            allPhotosOptions = [[PHFetchOptions alloc] init];
            allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
        }
     self.assetsFetchResults = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:allPhotosOptions];

    当中assetsFetchResults存储了全部的图片信息。PHAssetMediaTypeImage为搜索图片的类型。相同的搜索其它类的能够依据

    typedef NS_ENUM(NSInteger, PHAssetMediaType) {
        PHAssetMediaTypeUnknown = 0,
        PHAssetMediaTypeImage   = 1,
        PHAssetMediaTypeVideo   = 2,
        PHAssetMediaTypeAudio   = 3,
    } NS_ENUM_AVAILABLE_IOS(8_0);
    2、获取图片UIImage

    [[PHCachingImageManager defaultManager] requestImageForAsset:asset
                                        targetSize:AssetGridThumbnailSize
                                       contentMode:PHImageContentModeAspectFill
                                           options:nil
                                     resultHandler:^(UIImage *result, NSDictionary *info) {
                                         // Set the cell's thumbnail image if it's still showing the same asset.
                                         if ([cell.representedAssetIdentifier isEqualToString:asset.localIdentifier]) {
                                             cell.thumbnailImage = result;
                                         }
                                     }];
    
    asset为assetsFetchResults中的一个PHAsset,targetSize是获取图片的大小,这个依据你显示的方式设置,假设须要获取图片其它信息比方标题能够採用
    [phAsset valueForKey:@"filename"];
    

    3、播放视频

    -(void)setVideoAsset:(PHAsset *)videoAsset
    {
        _videoAsset = videoAsset;
        [[PHImageManager defaultManager] requestPlayerItemForVideo:_videoAsset options:nil resultHandler:^(AVPlayerItem * _Nullable playerItem, NSDictionary * _Nullable info) {
            self.currentItem = playerItem;
            [self.player replaceCurrentItemWithPlayerItem:self.currentItem];
            [self.currentItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
        }];
    }








  • 相关阅读:
    webpack2 前篇
    vue 的调试工具
    CSS 命名规范总结
    reset.css
    推荐几个精致的web UI框架
    自己是个菜鸟 自己查找的简单的适合初学的Makefile
    Linux下编译、使用静态库和动态库 自己测过的
    函数参数的传递 动态内存传递问题(指针的指针)
    二级指针 (C语言)
    find_if查找vector内对象的成员 作为菜鸟一直不会用也不敢用
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7195573.html
Copyright © 2011-2022 走看看