IOS 获取设备本地音视频

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




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108313.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 美化包软件_html简单进度条插件

    美化包软件_html简单进度条插件前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月30日
    8
  • SpringBoot常见的经典面试题

    SpringBoot常见的经典面试题SpringBoot常见的经典面试题最近很多人面试时,简历上都说自己熟悉SpringBoot,或者说正在学习SpringBoot,一被面试官问道,都只停留在简单的使用阶段,很多东西都不清楚,下面我整理了一些springboot比较常见的面试题。1、什么是SpringBoot?SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,…

    2022年6月7日
    30
  • typescript的泛型_泛型有什么用

    typescript的泛型_泛型有什么用泛型指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定具体类型的一种特性。引入下面创建一个函数,实现功能:根据指定的数量count和数据value,创建一个包

    2022年7月31日
    9
  • k8s pod控制器_k8s多人用吗

    k8s pod控制器_k8s多人用吗k8sPod控制器的介绍ReplicaSet(RS)Deployment(Deploy)扩缩容镜像更新版本回退金丝雀发布Horizontal Pod Autoscaler(HPA)DaemonSet(DS)JobCronJob(CJ)StatefulSet(有状态)StatefulSet的金丝雀发布k8s的Pod控制器详解主要介绍各种Pod控制器的详细使用。Pod控制器的介绍在kubernetes中,按照Pod的创建方式可以将其分为两类:自主式Pod:kubernetes直接创建出来的Pod,这

    2022年8月9日
    4
  • 《JavaScript 模式》读书笔记(6)— 代码复用模式3

    我们之前聊了聊基本的继承的概念,也聊了很多在JavaScript中模拟类的方法。这篇文章,我们主要来学习一下现代继承的一些方法。九、原型继承下面我们开始讨论一种称之为原型继承(prototype

    2022年3月25日
    46
  • netty通信框架_王国风云2控制台代码

    netty通信框架_王国风云2控制台代码写在前面所属章节链接第二章2.1BIO通信aaaTimeServer代码importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;publicclassTimeServer{ publicstaticvoidmain(String[]args)throwsIOException{ intport=8081; if(args

    2022年10月2日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号