簡體   English   中英

Swift 3中的CMSampleBufferRef產生崩潰

[英]CMSampleBufferRef in Swift 3 produce crash

我在庫中有以下Objective C接口:

@interface VideoSource : NSObject

- (void)setFilter:(void(^)(void *))filter;

@end

它是使用SDK 9.3構建的。 回調中的第一個參數是CMSampleBufferRef。

現在,我想在帶有Swift 3的Xcode 8中使用該代碼,但是在Swift 3中,CMSampleBufferRef不是指針,而是CMSampleBuffer類。 我嘗試了幾種選擇,但它們都會導致崩潰。 這是我的嘗試之一:

videoSource.setFilter { buffer in
    let p = buffer.load(as: UnsafeMutablePointer<CMSampleBuffer>.self)
    let sampleBuffer = p.pointee
}

正確的鑄造效果如何?

為了使您能夠工作,請進行以下更改:

videoSource.setFilter { buffer in
    let sampleBuffer = buffer?.load(as: CMSampleBuffer.self)
}

傳遞給閉包的buffer是一個void *指向CMSampleBuffer實例,因此您應該這樣加載它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM