iOS-从相册选中一个视频并拿到视频的元数据
来源:互联网 发布:php设计思想 编辑:程序博客网 时间:2024/05/17 13:44
从相册选中一个视频并拿到该视频的元数据信息
// 通过相册里选中的某一个视频获取他的元数据信息- (void)getXMLFromSelectedVideoInAlbumWithPath:(NSURL *)mediaUrl andRefrenceURL:(NSURL *)refrenceUrl{ // 通过视频的 refrenceURL 获取PHFetchResult PHFetchResult *fetchResult = [PHAsset fetchAssetsWithALAssetURLs:[NSArray arrayWithObject:refrenceUrl] options:nil]; if (fetchResult.count) { PHAsset *videoAsset = (PHAsset*)fetchResult.firstObject; PHVideoRequestOptions *phvideoResOption = [[PHVideoRequestOptions alloc]init]; [[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:phvideoResOption resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) { AVFormatContext *pinputFormatCtx = NULL; int ret = avformat_open_input(&pinputFormatCtx, mediaUrl.absoluteString.UTF8String, NULL, NULL); if (ret == 0) { av_dump_format(pinputFormatCtx,0,mediaUrl.absoluteString.UTF8String, 0); AVDictionaryEntry *tag = NULL; tag = av_dict_get(pinputFormatCtx->metadata, "comment", NULL, 0); if(tag) { if(tag->key && strlen(tag->value)>10) { if(strncmp(tag->key, "TVUComment:", 11)) { NSString *filemeta = [[NSString alloc]initWithCString:tag->value+11 encoding:NSUTF8StringEncoding]; NSMutableString *mStr = [NSMutableString stringWithFormat:@"<TVUMetaData xmlns=\"http://www.tvunetworks.com\">%@</TVUMetaData>",filemeta]; NSString *xmlName = [[TVUMovManager defaultManager] generateXMLFileBasedOnTheTimeInTheMetadata:mStr]; NSString *checkStr = [NSString stringWithFormat:@"Documents/videoMetadata/%@",xmlName]; NSString *metadataXML = [[NSString alloc]initWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:checkStr] encoding:NSUTF8StringEncoding error:nil]; if (metadataXML == nil) { NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *xmlPath = [documentPath stringByAppendingString:[NSString stringWithFormat:@"/videoMetadata/%@",xmlName]]; NSError *error = nil; [mStr writeToFile:xmlPath atomically:YES encoding:NSUTF8StringEncoding error:&error]; if(error) { log4cplus_error("Metadata", "%smetaData write failure:%s",__func__,error.debugDescription.UTF8String); }else{ metadataXML = [[NSString alloc]initWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:checkStr] encoding:NSUTF8StringEncoding error:nil]; } } if (metadataXML != nil) { log4cplus_error("Metadata", "%sSelected video's metadata is %s",__func__,metadataXML.UTF8String); NSData *xmlData = [metadataXML dataUsingEncoding:NSUTF8StringEncoding]; [self XMLParserWithData:xmlData]; } } } } avformat_close_input(&pinputFormatCtx); } }]; }}
阅读全文
0 0
- iOS-从相册选中一个视频并拿到视频的元数据
- ios:从系统相册选取视频并获得视频的缩略图
- ios:从系统相册选取视频并获得视频的缩略图
- ios:从系统相册选取视频并获得视频的缩略图
- iOS从相册选择视频和保存视频到相册
- ios获取所有相册的视频并播放
- ios获取所有相册的视频并播放
- ios获取所有相册的视频并播放
- 从系统相册选取视频并获得视频的缩略图(取消自动播放)
- [iOS]从相册获取以及用相机拍摄视频并缓存到沙盒
- iOS从相册获取以及用相机拍摄视频并缓存到沙盒
- [iOS]从相册获取以及用相机拍摄视频并缓存到沙盒
- 手机视频的录制和从相册选着视频
- iOS设备的摄像头进行拍照,视频。并且从相册中选取我们需要的图片或者视频。
- [IOS]从相册获取图片和视频进行上传
- iOS判断从系统相册选取的是视频还是照片
- 从一个视频想到的
- [iOS]拷贝视频至相册
- Android属性之excludeFromRecents
- NodeJS框架之Express4.x源码分析
- Dead Fraction POJ
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法
- 编译时出现DexIndexOverflowException 的解决办法
- iOS-从相册选中一个视频并拿到视频的元数据
- StringContent参数需要添加MetaType对象
- null可以被强制类型转换成任意类型的对象
- java的socket读取
- exercise 3 --神经网络进行手写体识别
- Ansible Failed
- android app冷启动以及优化
- PATbasic1007
- data mining论文泛读范围