.h文件 - (void)getVideoImageWithURL:(NSURL *)videoURL time:(NSTimeInterval)time; .m文件 - (void)getVideoImageWithURL:(NSURL *)videoURL time:(NSTimeInterval)time { //先从缓存中找是否有图片 SDImageCache *cache = [SDImageCache sharedImageCache]; UIImage *memoryImage = [cache imageFromMemoryCacheForKey:videoURL.absoluteString]; if (memoryImage) { self.coverImageView.image = memoryImage; return; }else{ UIImage *diskImage = [cache imageFromDiskCacheForKey:videoURL.absoluteString]; if (diskImage) { self.coverImageView.image = diskImage; return; } } if (!time) { time = 1; } dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil]; NSParameterAssert(asset); AVAssetImageGenerator *assetImageGenerator =[[AVAssetImageGenerator alloc] initWithAsset:asset]; assetImageGenerator.appliesPreferredTrackTransform = YES; assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels; CGImageRef thumbnailImageRef = NULL; CFTimeInterval thumbnailImageTime = time; NSError *thumbnailImageGenerationError = nil; thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError]; if(!thumbnailImageRef) NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError); UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage: thumbnailImageRef] : nil; __weak typeof(self) weakSelf = self; dispatch_async(dispatch_get_main_queue(), ^{ SDImageCache *cache = [SDImageCache sharedImageCache]; [cache storeImage:thumbnailImage forKey:videoURL.absoluteString completion:^{ }]; weakSelf.coverImageView.image = thumbnailImage; }); }); }
相关推荐
在iOS开发中,实现一个支持本地和网络视频播放的功能是一项重要的任务。本项目专注于iOS9版本,通过改写开源代码库,提供了一个无bug的视频播放解决方案。下面将详细介绍这个项目涉及的关键知识点。 首先,iOS9中的...
在这个"ios-高仿微信小视频截取功能.zip"项目中,我们将深入探讨如何利用AVFoundation来实现这一功能。 首先,我们需要了解AVFoundation中的关键组件。AVAsset是表示媒体内容的基本对象,它可以是音频、视频或者...
在iOS平台上开发一款视频播放器是一项常见的任务,尤其对于学习iOS开发的学生来说,这常常作为课程设计的一部分。本文将深入探讨基于iOS的视频播放器的实现,主要关注以下几个知识点: 一、AVFoundation框架 在iOS...
在iOS应用开发中,视频播放器是一个至关重要的组件,它允许用户观看和交互与各种视频内容。本资源“ios应用源码之视频播放器 20181210”提供了一个完整的视频播放器的源代码,适用于2018年12月10日的iOS开发环境。...
此播放器可以播放本地和网络视频,具有1、2倍加速播放,如果视频支持的话可以3、4倍速度播放。如果播放网络视频则可以边播放边缓存。 Github地址:https://github.com/FlyOceanFish/StudyAVFoundation
在iOS应用开发中,仿照抖音的视频封面选择功能是一项常见的需求,这涉及到多媒体处理、用户界面设计以及交互逻辑等多个方面。在这个过程中,开发者需要实现一个功能强大的视频预览及封面选取模块,让用户能够轻松地...
在iOS开发中,创建一个自定义的视频播放器界面是一项常见的任务,特别是在iOS9及更高版本中。`AVPlayerViewController`是苹果提供的一个强大的视频播放工具,它允许开发者轻松地集成视频播放功能到应用程序中。然而...
在iOS平台上,开发一款视频在线播放器是一项技术性较强的任务,涉及到多个关键技术点。本文将深入探讨"ios 视频在线播放器"的相关知识点,包括视频播放器的基本架构、在线播放技术、边下边播机制以及拖拉进度条播放...
在iOS开发中,生成视频缩略图是一项常见的需求,它能帮助用户快速了解视频内容。本文将详细讲解如何使用两种不同的方法来实现这一功能:一是利用`MPMoviePlayerController`,二是利用`AVAssetImageGenerator`。 ###...
在iOS开发中,构建自定义视频播放器是一个常见的需求,AVFoundation框架提供了强大的多媒体处理能力,使得开发者可以灵活地控制视频播放。本项目基于AVFoundation,重点讲解如何封装AVPlayerLayer、AVPlayer和...
在iOS平台上开发流媒体播放器时,`ffmpeg`是一个非常重要的工具库,它为开发者提供了丰富的音频、视频处理功能。本项目"基于iOS的ffmpeg流媒体播放器"旨在实现一个简单且快速可用的流媒体播放解决方案。下面我们将...
在iOS应用开发中,视频播放器是一个至关重要的组件,它允许用户在移动设备上观看视频内容。本资源“iOS应用源码之视频播放器.rar”包含了一个完整的视频播放器的源代码,对于开发者来说,这是一个极好的学习和参考...
在iOS开发中,创建一个功能完善的视频播放器是至关重要的,尤其对于那些希望提供多媒体体验的应用来说。"IOS应用源码——视频播放器.zip"这个压缩包文件很可能包含了一个完整的iOS视频播放器应用的源代码,这对于...
ios rtsp rtmp流媒体播放器,代码的架构跟kxmovie差不多,但我真实实验过好多kxmovie代码播放rtmp并不能很好的实时播放,后来看了这个播放还是很好,希望对你们有用,本人就是做ios流媒体这一块的,稍微要点资源分。
在iOS开发中,创建一个自定义UI的视频播放器是一个常见的需求,这可以让应用程序具有独特的用户体验和风格。本文将深入探讨基于`MPMoviePlayerController`的自定义UI视频播放器源码,帮助开发者理解如何实现这样的...
HTY360Player, 开放源码 iOS 360度全景视频播放器 360 VR播放器是一个开源。免费。本机和通用dgree全景电视播放器。 HTY360Player是iOS的360度全景视频播放器。动机发布了一个新功能,可以在它的应用中播放°视频。 ...
感谢chenqi777:http://code.cocoachina.com/view/128246 swift写的简单视频播放器 代码链接: https://github.com/Chaser-Z/MyVideoPlayer 欢迎star,多提问题
在iOS平台上开发一款视频播放器是一项技术性强且充满挑战的任务,因为这涉及到多媒体处理、用户界面设计、网络数据传输等多个领域的知识。以下是对标题“iOS视频播放器”和描述中的关键知识点的详细解释: 1. **...
在iOS开发中,创建一个功能完善的视频播放器是一项复杂但重要的任务。这个“IOS应用源码——视频播放器.rar”提供的源代码可以帮助开发者深入了解如何在iOS应用中集成视频播放功能。下面,我们将深入探讨这个源码中...