扩展--使用AVFoundation生成缩略图
来源:互联网 发布:龙桃子模型官方淘宝 编辑:程序博客网 时间:2024/05/07 09:03
扩展--使用AVFoundation生成缩略图
通过前面的方法大家应该已经看到,使用MPMoviePlayerController来生成缩略图足够简单,但是如果仅仅是是为了生成缩略图而不进行视频播放的话,此刻使用MPMoviePlayerController就有点大材小用了。其实使用AVFundation框架中的AVAssetImageGenerator就可以获取视频缩略图。使用AVAssetImageGenerator获取缩略图大致分为三个步骤:
- 创建AVURLAsset对象(此类主要用于获取媒体信息,包括视频、声音等)。
- 根据AVURLAsset创建AVAssetImageGenerator对象。
- 使用AVAssetImageGenerator的copyCGImageAtTime::方法获得指定时间点的截图。
//// ViewController.m// AVAssetImageGenerator//// Created by Kenshin Cui on 14/03/30.// Copyright (c) 2014年 cmjstudio. All rights reserved.//#import "ViewController.h"#import <AVFoundation/AVFoundation.h>@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //获取第13.0s的缩略图 [self thumbnailImageRequest:13.0];}#pragma mark - 私有方法/** * 取得本地文件路径 * * @return 文件路径 */-(NSURL *)getFileUrl{ NSString *urlStr=[[NSBundle mainBundle] pathForResource:@"The New Look of OS X Yosemite.mp4" ofType:nil]; NSURL *url=[NSURL fileURLWithPath:urlStr]; return url;}/** * 取得网络文件路径 * * @return 文件路径 */-(NSURL *)getNetworkUrl{ NSString *urlStr=@"http://192.168.1.161/The New Look of OS X Yosemite.mp4"; urlStr=[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url=[NSURL URLWithString:urlStr]; return url;}/** * 截取指定时间的视频缩略图 * * @param timeBySecond 时间点 */-(void)thumbnailImageRequest:(CGFloat )timeBySecond{ //创建URL NSURL *url=[self getNetworkUrl]; //根据url创建AVURLAsset AVURLAsset *urlAsset=[AVURLAsset assetWithURL:url]; //根据AVURLAsset创建AVAssetImageGenerator AVAssetImageGenerator *imageGenerator=[AVAssetImageGenerator assetImageGeneratorWithAsset:urlAsset]; /*截图 * requestTime:缩略图创建时间 * actualTime:缩略图实际生成的时间 */ NSError *error=nil; CMTime time=CMTimeMakeWithSeconds(timeBySecond, 10);//CMTime是表示电影时间信息的结构体,第一个参数表示是视频第几秒,第二个参数表示每秒帧数.(如果要活的某一秒的第几帧可以使用CMTimeMake方法) CMTime actualTime; CGImageRef cgImage= [imageGenerator copyCGImageAtTime:time actualTime:&actualTime error:&error]; if(error){ NSLog(@"截取视频缩略图时发生错误,错误信息:%@",error.localizedDescription); return; } CMTimeShow(actualTime); UIImage *image=[UIImage imageWithCGImage:cgImage];//转化为UIImage //保存到相册 UIImageWriteToSavedPhotosAlbum(image,nil, nil, nil); CGImageRelease(cgImage);}@end
生成的缩略图效果:
0 0
- 扩展--使用AVFoundation生成缩略图
- 使用AVFoundation生成缩略图
- kidd风的IOS日志之使用AVFoundation生成缩略图
- IOS开发:怎样使用AVFoundation生成视频缩略图
- AVFoundation使用
- 使用404被动生成缩略图
- 使用七牛云存储生成缩略图
- Swift:使用系统AVFoundation实现二维码扫描和生成
- nginx使用image_filter生成缩略图 -- fasdfs海量图片缩略图整合
- AVFoundation的使用
- AVFoundation的使用
- AVFoundation的使用
- 使用AVFoundation扫描二维码
- iOS 视频AVFoundation使用
- java使用JMagick生成高质量缩略图
- Silverlight缩略图生成(使用WriteableBitmap类)
- php生成缩略图(使用gd库)
- php使用GD生成图片的缩略图
- win charles显示中文乱码解决终极方案
- Qt中ui文件的使用
- Qt Createor error writing to -: Invalid argument
- 解决jquery报错cannot read property 'length' of undefined
- JSP页面调用Spring容器注入的Bean
- 扩展--使用AVFoundation生成缩略图
- 关于AppServ安装后mysql无法启动的问题
- 拓扑排序的简单实现
- CSS 基础(014_Align)
- Gson解析使用详解
- 徐家骏写给任正非的辞职信
- sql截取字符串拼接字符串修改字符串
- nginx配置location [=|~|~*|^~] /uri/ { … }用法
- 加拿大联邦技术移民,好多朋友咨询,其实看看英文比什么都强,翻译稿如下