1

openCL を使用してサウンドを再生していますが、通話が開始されて [拒否] を押すと、サウンドが機能しなくなることに気付きました。endInterruption が呼び出されていないことまでたどることができました。

問題は、これがレプリケーションを繰り返す 5 回に 1 回程度しか発生しないことです。これは、ほとんどの場合 endInterruption を呼び出すため、コードが問題ないことを意味しますが、iOS が endInterruption を呼び出さないことを決定するたびに、その理由がわかりません。

4

1 に答える 1

2

メイン スレッドではなくバックグラウンド スレッドから "play" 関数を呼び出しているかどうかを確認します。バックグラウンド スレッドから play/playAtTime 呼び出しを開始することがある場合、endInterruption コールバックを受信しません。

興味深いことに、play 呼び出しがバックグラウンド スレッドから開始された場合でも、システムは beginInterruption を呼び出します。

お役に立てれば。

于 2012-02-01T14:28:51.380 に答える