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








  • 相关阅读:
    使用MyEclipse可视化开发Hibernate实例
    Query查询
    Java Filter过滤机制详解(转载)
    持久化对象的状态转换
    经典SQL语句大全
    持久对象的生命周期
    Mysql命令操作
    hibernate常用的接口和类的方法以及持久化对象的状态变化
    mysql的安装
    Visual C# 2008+SQL Server 2005 数据库与网络开发 10.8 小结
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7195573.html
Copyright © 2011-2022 走看看