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








  • 相关阅读:
    239. [LeetCode ]Sliding Window Maximum
    152.[LeetCode] Maximum Product Subarray
    53. [LeetCode] Maximum Subarray
    90 [LeetCode] Subsets2
    78[LeetCode] Subsets
    练习7.52
    练习7.47、7.48、7.49、7.51
    关于类类型的隐式类型转换
    练习7.44、7.45、7.46
    练习7.36、7.37、7.39、7.40
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7195573.html
Copyright © 2011-2022 走看看