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








  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值