0

我是使用 Objective-C 和 Cocoa 的新手。

我已经按照这里的 Quicktime 播放电影的示例代码。我想知道如何扩展它,以便我可以QTMovie在程序开始时加载多个 s,然后在请求时以最小的延迟播放它们中的每一个。

我最初的策略是创建一个包含QTMovie对象的类以及加载和播放它的方法。然后在我的主课中,我会有这些MovieContainer对象的列表。

当我尝试实现这个时,我QTMovieLoadStateError在加载每个QTMovie错误消息的过程中得到一个

Domain=NSOSStatusErrorDomain Code=-2098 "The operation couldn’t be completed.
(OSStatus error -2098.)" (component is not thread-safe)

我是在完全错误的方向上前进,还是我只是错过了几行可以使这个“线程安全”的代码?

谢谢你的帮助。

4

1 回答 1

0

在后台(非主)线程中使用 QTMovie 对象之前,您需要调用:

[QTMovie enterQTKitOnThread]

或者

[QTMovie enterQTKitOnThreadDisablingThreadSafetyProtection]

选择哪一个取决于电影文件的编解码器。第二种变体将允许非线程安全的组件;对于一些罕见的编解码器,这将是唯一的方法。

呼叫必须与:

[QTMovie exitQTKitOnThread]
于 2012-06-04T23:58:51.180 回答