0

私はxcodeを使用してiOSでアプリをプログラミングしていますが、多くの作業を行った後、機能がメソッド呼び出しの精度に本当に依存していることがわかりました。コード内で次々にそれらを呼び出すことは役に立ちませんが、それらは互いに最大tp150ミリ秒の差で呼び出されます。したがって、2つのメソッドを最小の時間差で、つまり「同時に」実行する必要があります。私が実行しているこれらの2つのタスクは、実際にはオーディオとビデオのタスクであるため、インプロセスのレイテンシーと遅延も含まれる可能性があることを理解しています。非常に小さな時間差で、彼らが一緒に走り始めること。ディスパッチキューなどを使ってみましたが、うまくいきません。

十分に明確でなかった場合は、詳しく説明させていただきます。ありがとう!

4

4 に答える 4

2

割り込み駆動型のマルチタスク OS をリアルタイム OS のように動作させることはできません。

それはそのようには機能しません。

さまざまなマルチメディア API を使用して、オーディオとビデオが同期される再生コンテキストを設定する必要があります (これはわかりません)。

于 2012-08-08T23:53:55.773 に答える
0

Apple には、オーディオとビデオの同期に関する API とドキュメントがあります。 http://developer.apple.com

于 2012-08-08T23:52:44.397 に答える
0

各メソッド呼び出しには一定の時間がかかり、その間に後続のメソッドがブロックされるため、メソッドを順次 (シリアルに) 呼び出しても、求めていることは実行されません。

複数の汎用タスクを同時に実行するには (最新のマルチコア デバイスで真に同時に実行される可能性があります)、「ディスパッチ キューなど」によるスレッド化が必要です。GCD は確実に機能するため、「機能しない」とはどういう意味かを詳しく説明する必要があります。

しかし、これはおそらく無駄なことです。汎用的なタスクについて話しているわけではないからです。オーディオとビデオのタスクを処理している場合、これらすべてを CPU 上の独自のコードで行うべきではありません。ハードウェア アクセラレーションが必要であり、Appleはそれを支援するフレームワークを提供しています。私はおそらく、AV Foundationフレームワークを調べることから始めます。次に、何をしようとしているかに応じて (質問では実際には言いませんでした...)、さまざまなOpenALCore Videoを調べます。 、およびコアオーディオ。(後者について絶賛されているが出ていますが、私自身は見たことがありません。正直なところ、私は A/V 開発者ではありません。)

于 2012-08-08T23:57:20.607 に答える
0

ご存知かもしれませんが、マルチタスク環境 (特にシングル コア デバイス) では、実行中のステートメント間のタイミングを保証することはできません。

ただし、オーディオとビデオの再生について言及しているため、Apple はフレームワークを通じてこれを実現できるいくつかの基本を提供しています。

AVSynchronizedlayer - ビデオまたはオーディオの一部が(さまざまな形式をサポートする) AVPlayerItemから再生できる場合、キーフレーム アニメーションから他の AVPlayerItems まで、それと同期される他のイベントのツリーを構築できます。

特に複数のオーディオ トラックが必要な場合は、それを行うためのより単純な構成が Core Audio にもいくつかあります。

あなたのニーズのより具体的な例を挙げることができれば、誰かが追加のアイデアを提供できるかもしれません.

于 2012-08-09T00:02:15.093 に答える