0

Objective-C と Cocoa を使用するのは初めてです。

ここにある Quicktime でムービーを再生するためのサンプル コードに従いました。プログラムの開始時に複数の をロードできるように拡張する方法を考えてQTMovieおり、要求されたときに最小限のレイテンシーでそれぞれを再生できます。

私の最初の戦略は、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]

どちらを選択するかは、ムービー ファイルのコーデックによって異なります。2 番目のバリアントは、非スレッドセーフ コンポーネントを許可します。一部のまれなコーデックでは、これが唯一の方法です。

呼び出しは次のものと組み合わせる必要があります。

[QTMovie exitQTKitOnThread]
于 2012-06-04T23:58:51.180 に答える