2011-08-10 10 views
0

私はいくつかのサウンドを再生していますが、それらは順番に(ランダムに)再生する必要があるため、次が始まる必要があります。iOS AudioServicesAddSystemSoundCompletionコールバックで1秒の遅延が発生する

私はAudioSvicesAddSystemSoundCompletionコールバックプロシージャを使用して、SystemSoundIDで指定されたサウンドファイルの再生が完了したかどうかを判断しています。その時点で、静的なCコールバックメソッドがヒットし、インスタンスにコールバックして別のサウンドを再生します。

しかし、オーディオ仕上げとコールバック関数が衝突するまでに1秒の遅延があります。

最後に余分なスペースを入れずにオーディオをトリムします。私は確認するためにいくつかの重要な場所にNSLogを置き、最初のサウンドが再生されます - コードの残りの部分は何もしません - ちょうど入力を待ってから、コールバックはオーディオが終了してから1秒後に日常的にヒットします。

私は公式の文書を調べましたが、私はこれに理由を見つけることができません - いずれも10分のグーグルが解決策を提示していません。

誰もが何か考えてください?

ありがとうございます。

答えて

0

遅延についてはわかりませんが、私はそれを経験したことがありません。しかし、おそらくあなたはthisを試すことができます。これは、SystemSoundIDのためのObjective-Cラッパーであり、補完コールバックを含むassosiated関数のいくつかです。 C関数の代わりにこれを使用する方が簡単です。

0

遅延がないこれを読んものに申し訳ありませんが、私は時間的制約に、この底面に到達するためにAppleとサポート要求を使用して、あなたが答えを信じていないだろう...

この問題は、私たちがオーディオファイルを切り取り、トリミングして書き出すために使用したアプリのUIの「機能」によって引き起こされました... GarageBand。

GarageBandでオーディオトラックをトリミングすると、必要なサウンドだけが表示され、再生されるまで再生されます。ループしていても、そのトラックを.aifファイルとしてエクスポートすると、表示されます。 - トラックのトリムとカットされた部分のすべてBACK!

これで、GB日後にトラックを再度開いても、切り取られたカットされたバージョンが表示されます。ただし、トリミングはファイルのメタデータに過ぎません。ちょうどiTunesトリミングのように...全く意味がありません。

だから、すべてのオーディオが再より正確なオーディオアプリで編集してエクスポートする必要がありました - 大胆...

Appleはこれらのサウンドプレイバック用のコールバックスレッドが低い優先度のスレッドが、その私たちであることを言及しましたまだそのような休止を見ているべきではありませんでした。

理由を考えようとした人、特に上記のポスターは、時間をかけて助けてくれたことに感謝します。

関連する問題