質問

私は私のゲームで使用するために、いくつかの音を作成しました。私は問題なく特定のイベントでそれらを再生することができます:

// create sounds
CFBundleRef mainBundle;
mainBundle = CFBundleGetMainBundle();

_soundFileShake = CFBundleCopyResourceURL(mainBundle, CFSTR("shake"), CFSTR("wav"), NULL);
AudioServicesCreateSystemSoundID(_soundFileShake, &_soundIdShake);

// later...
AudioServicesPlaySystemSound(_soundIdShake);
ゲームはあなたには、いくつかの機能を有効にするには、デバイスを振ることを可能にする機構を備えています。私は私が私のゲームに「始め振る」と「揺れ終わった」というメッセージをゲットするために行わ揺れコードを持っています。何が起こる持っている必要がありますすることが開始され、ループ、それを振ったときに止まるまで「shave.wavを」再生を開始します。 AudioToolbox / AudioServicesでこれを行う方法はありますか?いない場合、私はこれを行うことができますどのように?

役に立ちましたか?

解決

「揺れている」状態とAudioServicesAddSystemSoundCompletionとシステムサウンドの完成のためのコールバックを登録するのを追跡します。それが完了し、デバイスはまだ振とうされているときはいつでもその後、もう一度システムサウンドを開始します。音が十分に短い場合、これは、所望の効果を作成します。あなたがストップを振ったときに音がすぐに停止したことを確認する必要がある場合は、再生(例えば、オーディオキューサービスまたはAVAudioPlayer)をより細かく制御を提供し、サウンドAPIのいずれかを使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top