2

iPad で次のように短いサウンドを再生しています。 iOS で短いサウンドを再生する

cafFinder から正常に再生できるファイルを使用しています。今、私は音の再生を達成しようとしてかなりの面倒を経験しましたが、私が理解していないように見える問題が何であるか興味があります:

  • オプション 1: SystemSoundID を作成してすぐに再生すると、デバイスとシミュレーターで何も聞こえません。

  • オプション 2: SystemSoundID のインスタンス変数を作成して初期化するとviewDidLoad、シミュレーターではなく iPad でのみサウンドを再生できます。

  • オプション 3: を使用する代わりに、SystemSoundIDAVAudioPlayer を使用して.wavファイルを再生し、iPad とシミュレーターの両方で動作させることもできますが、ここでは AVAudioPlayer を作成する必要がありますviewDidLoad

現時点では、Simulator と iPad の両方で動作するため、最適なオプションのようですがOption 3、Player を事前に初期化する必要があるため、AVAudioPlayer再生したいさまざまなサウンドごとにインスタンスが必要になります。メモリ的に...

フレームワークを使用して両方のプラットフォームでサウンドを再生することは可能ですかAudioToolbox(オプション 1 & オプション 2)

4

1 に答える 1

3

これらすべてを簡素化するためにライブラリを作成しました。AVAudioPlayer をラップし、デバイスとシミュレーターの両方で正常に動作します。

https://github.com/nicklockwood/SoundManager

コードはかなり単純ですが、オーディオ プレーヤーを初期化するためにやや巧妙な処理を行います。ライブラリを使用したくない場合は、コードをコピーするだけです。

ただし、警告の言葉 - AVAudioPlayer を使用するたびに、シミュレーターは奇妙な例外を内部的にスローします。アプリにはまったく影響しませんが、Xcode でブレーク オン 例外を有効にしている場合、アプリは起動時に数回デバッガーにドロップし、手動で再開する必要があります。あなたはそれを期待していません。

于 2012-05-02T16:18:44.050 に答える