Я пытаюсь получить метку времени каждого захваченного кадра, но теряюсь в документах Apple Dev.Для захвата кадров я использую AVFoundation
framework.
Конечная цель - получить массив изображений, а затем выбрать одно из них на основе метки времени, захваченной где-то еще
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
// now I would like to know when sampleBuffer was created
let sessionAtSourceTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer)
let frameTimeMillisecs = CMTimeGetSeconds(sessionAtSourceTime) * 1000; // I am not sure what this value represents
print("sessionAt \(sessionAtSourceTime)")
let decodeTime = CMSampleBufferGetDecodeTimeStamp(sampleBuffer)// always all values set to 0
print("decodeTime \(decodeTime)")
let decodeOutputTime = CMSampleBufferGetOutputDecodeTimeStamp(sampleBuffer) // always all values set to 0
print("decodeOutputTime \(decodeOutputTime)")
// more stuff here such as converting buffer to image and then append to an array, don't think that are relevant for this question
}
Я не уверен, как отсюда двигаться.Я думал, что могу просто создать новый Date
объект в методе captureOutput, но я не уверен, что это будет достаточно точно.
У кого-нибудь есть идеи, как этого добиться?Я посмотрел на эту страницу , но опять же я не уверен, какое значение я получу обратно.