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];
        }];
    }








  • 相关阅读:
    Robotium 测试方法
    T-SQL—理解CTEs
    SQLServer复制(二)--事务代理作业
    数据库复制(一)--复制介绍
    小议如何使用APPLY
    优化SQLServer——表和分区索引(二)
    关于UNPIVOT 操作符
    XML 在SQLServer中的使用
    列存储索引1:初识列存储索引
    T-SQL性能调整(一)--编译和重新编译
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7195573.html
Copyright © 2011-2022 走看看