2015-04-08 22 views
4

我試圖爲CMSampleBuffer中的每個示例設置kCMSampleAttachmentKey_DisplayImmediately設置CMSampleBuffer示例附件(Swift)

到目前爲止,我已經試過讓詞典(Dictionary<NSObject, AnyObject>NSDictionaryCFDictionary),並在兩個CMSampleBuffer及其附件調用CMSetAttachment

對於檢索附件,我使用CMSampleBufferGetSampleAttachmentsArray

任何想法如何在Swift中設置這些標誌?

回答

1

下面是與Swift 4一起工作的解決方案(可能還很不完美)(應該與3一起工作)。

func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer) { 
    let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true) 
    let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0), 
     to: CFMutableDictionary.self) 
    let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque() 
    let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque() 
    CFDictionarySetValue(dictionary, key, value) 
}