Dev*_*vin 5 xcode avfoundation ios avmetadataitem
我已经通过带有AVCaptureMovieFileOutputObject的手机摄像头捕捉视频,
我想将新的元数据添加到文件中,
我尝试使用AVAssetExportSession它,它的工作原理!
但是它花了很多时间,我想,这个方法重新编码了文件,
我只想添加新元(位置),
我尝试使用setMetadata方法AVCaptureMovieFileOutput
但我不知道怎么做,
我试试
元:
AVMutableMetadataItem *newItem = [AVMutableMetadataItem metadataItem];
newItem.identifier = [AVMutableMetadataItem identifierForKey:AVMetadataQuickTimeMetadataKeyLocationISO6709 keySpace:AVMetadataKeySpaceCommon];
newItem.key = AVMetadataQuickTimeMetadataKeyLocationISO6709;
newItem.value = [self gpsStringForVideo:gps];
Run Code Online (Sandbox Code Playgroud)
第一:
[_movieFileOutput setMetadata:@[meta]];
[_movieFileOutput startRecordingToOutputFileURL:outPutUrL recordingDelegate:self];
Run Code Online (Sandbox Code Playgroud)
但我不能得到代表的回应.
然后:
[_movieFileOutput startRecordingToOutputFileURL:outPutUrL recordingDelegate:self];
[_movieFileOutput setMetadata:@[meta]];
Run Code Online (Sandbox Code Playgroud)
我可以正常开始录制,但输出文件不包含任何信息!
有人有什么建议吗?谢谢!
这对我有用:
let metadata = AVMutableMetadataItem()
metadata.keySpace = AVMetadataKeySpaceQuickTimeMetadata
metadata.key = AVMetadataQuickTimeMetadataKeyLocationISO6709 as NSString
metadata.identifier = AVMetadataIdentifierQuickTimeMetadataLocationISO6709
metadata.value = String(format: "%+09.5f%+010.5f%+.0fCRSWGS_84", location.coordinate.latitude, location.coordinate.longitude, location.altitude) as NSString
movieFileOutput.metadata = [metadata]
movieFileOutput.startRecording(toOutputFileURL: temporaryFileUrl(), recordingDelegate: self)
Run Code Online (Sandbox Code Playgroud)
对于 Objective-C 你不需要强制转换NSString
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |