Swift 2 - 可视化 AVMutableComposition 以进行调试:转换 Apple 的 AVCompositionDebugViewer

Swift 2 - Visualizing an AVMutableComposition for Debugging : Converting Apple's AVCompositionDebugViewer

我 运行 我的 swift 2 Apple 提供的用于显示 AVMutableComposition 的示例的转换出现了问题。如果您尝试可视化您的 AVComposition 以查看幕后情况,这将是一个非常有用的项目。


更新: 与 Obj-C 项目相比,我向每个函数添加了打印语句,以查看它们被调用的顺序,以及调用它们的人。

我看到的两个问题似乎非常重要:

  1. synchronizePlayerWithEditor() 在 buildTransitionComposition(_:andVideoComposition:andAudioMix:)

  2. 之后没有被调用
  3. observeValueForKeyPath(_:...) 的调用顺序与 Obj-C 项目不同

在此处发布代码片段以获取调用函数,因为它很有用

Obj-C

NSLog(@"%d %s %@", __LINE__, __PRETTY_FUNCTION__, [[NSThread callStackSymbols] objectAtIndex:1]);

Swift

func functionnYouWantToPrintCaller(yourNormalParameters..., function:String = __FUNCTION__){...}
print("\(__LINE__) \(__FUNCTION__) \(function)

这是我正在使用的 Apple 的 AVCompositionDebugViewer 项目:https://developer.apple.com/library/mac/samplecode/AVCompositionDebugViewer

我的 github 回购: https://github.com/justinlevi/iOSAVCompositionDebugViewerSwift

认为 这个问题可能源于 keyValueObservation 代码中的某些东西,尽管我现在还不能完全确定。

问题最终出现在 SimpleEditor.swiftbuildCompositionObjectsForPlayback` 方法中。有一些全局变量被错误地定义。

现在一切似乎都在按预期进行。 https://github.com/justinlevi/iOSAVCompositionDebugViewerSwift