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)
上一篇 2022年3月5日 下午12:00
下一篇 2022年3月5日 下午12:00


相关推荐

  • Trunk口配置实验

    Trunk口配置实验最近在初学网格配置 采用华为的 ENSP 平台来进行网络搭建仿真实验 第一个实验就是搭建一个简单的网络来进行实现同一局域网下不同 VLAN 间的通信 如图蓝色表示 VLAN 5 绿色 VLAN 9 他们旗下的主机是不能互相 ping 通的 比如 192 168 1 2 可以 ping 通 192 168 1 3 但是不能 ping 通 192 168 1 4 即使他们处于同一路由器下 以下知识点 vlan 端口类型 Acc

    2026年3月18日
    2
  • 分布式CAP原理:一致性、可用性、分区容错

    分布式CAP原理:一致性、可用性、分区容错CAP概念单机系统由于所有的处理都在单机完成的,所以不存在数据一致性问题,但是如果系统崩溃了,就导致服务不可用。分布式系统可以实现服务的高可用,现有的大型网站几乎都是分布式的,特别是微服务的出现,使得分布式系统正变得越来越重要。分布式系统最大的难点,就是各个节点的状态如何同步。CAP原理给分布式系统的实现带来了指导思路,它也是理解分布式系统的重要理论。CAP由以下三个指标组成:C(Consistency):一致性A(Availability):可用性P(P…

    2022年7月25日
    8
  • 毫秒和秒的换算在ms_秒,毫秒,微秒,纳秒,皮秒单位

    毫秒和秒的换算在ms_秒,毫秒,微秒,纳秒,皮秒单位文章目录[隐藏]前言毫秒微秒纳秒皮秒前言1秒=1000毫秒=1000*1000微秒=1000*1000*1000纳秒=1000*1000*1000*1000皮秒毫秒毫秒,符号ms(英语:millisecond).1毫秒等于一千分之一秒(10-3秒)0.000000001毫秒=1皮秒0.000001毫秒=…

    2025年8月28日
    7
  • 1-2Python创始人

    1-2Python创始人创始人简介 GuidovonRoss 吉多 范罗苏姆 荷兰人 1982 年 从阿姆斯特丹大学获得了数学和计算机硕士学位 1989 年 创立 Python 语言 那时 他还在荷兰的 CWI CentrumvoorW 国家数学和计算机科学研究院 1991 年初 Python 发布了第一个公开发行版 他原居荷兰 1995 移居到美国 2002 年 在比利时布鲁塞尔

    2026年3月18日
    2
  • iSAM2阅读笔记

    iSAM2阅读笔记

    2026年3月26日
    2
  • Netty(4)之UDP协议开发

    Netty(4)之UDP协议开发UDP 协议开发 1 概述 UDP 用户数据协议 UserDatagram 2 作用将网络流量压缩成数据报形式 提供面向事务的简单信息传输服务 利用 IP 协议进行数据报传输 提供无连接的 不可靠的数据投递服务 3 特点资源消耗小 处理速度快 通常使用在视频 音频等可靠性要求不高的数据传输 UDP 是无连接的 发送方和接收方相互交换信息使双方同步 UDP 接受到后不发送确认信息 发送端不知道是否成功 也不会重发 UDP 传送数据比 TCP 快 系统开销小 常用于视频 图片以及简单文件传输系

    2026年3月20日
    2

发表回复

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

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