どういうわけか、私のiPhoneシミュレーターはサウンドを再生できません。まず、AudioServicesPlaySystemSound()
を使用して作業しているアプリが機能しなくなりました。これをデバッグするのにしばらく時間を費やしましたが、デバイスでアプリを実行すると、サウンドがiPhoneで動作します。サンプルのクラッシュランディングアプリなど、他のiPhoneアプリでも同じ結果が得られます。
シミュレーターまたはXcodeの設定でサウンド設定が見つかりません。 [コンテンツと設定をリセット]メニュー項目を使用して、シミュレータをリセットしてみました。
Macで、[システム環境設定]> [サウンド]> [サウンドエフェクト]に移動し、[ユーザーインターフェイスのサウンドエフェクトを再生する]のチェックを外して再チェックします。
システムサウンドを再度アクティブにする必要があります。 this ページの終わりを参照してください。
シミュレーターに音がなかったので、モバイルサファリでテストし、mp3を再生してみました:音が出ません!
上記のすべてのヒントは役に立ちませんでした。最終的に、私は[〜#〜] input [〜#〜]ソースを仮想サウンドフラワーデバイスからラインインに変更し、シミュレータが機能しました!
そのため、アプリが入力を使用していなくても、Soundflowerではうまく機能しませんでした。
OSX10.5.7から10.6.2にアップデートした後、この問題が発生しました。
そして、シミュレーターを再度歌わせるために、次の変更を加えました。「アプリケーション/ユーティリティ」に移動し、「Audio MIDI Setup」を実行してから、midi形式を48000から44100に変更します。
シミュレータで動作しないOpenALは2.1 SDKで修正されました。 Active SDK and Active Executableが2.1に設定されていることを確認してください。
ところで、CrashLandingの最新バージョン(v1.8)を使用していることを確認してください。 SoundEngineのいくつかの厄介なリークは最近修正されました。
シミュレーター(2.1 SDK)で音が非常に矛盾していることがわかりました。時には機能する場合もあれば、機能しない場合もあります。動作する場合でも、通常は非常に途切れ途切れで歪んでいます(mp3などのオーディオファイルの再生時)。
覚えておくべきいくつかのこと:
AudioSessionInitialize
を呼び出しますkAudioSessionProperty_AudioCategory
_プロパティをAudioSessionSetProperty
経由で設定します(_kAudioSessionCategory_MediaPlayback
_などの値を使用)AudioSessionSetActive(YES)
を呼び出しますもちろん、他のすべてが失敗した場合は、ハードウェアで実行してください!
編集:2.2 SDKがリリースされたので、シミュレーターのサウンドに問題はありませんでした。彼らはバグを修正したに違いありません! 2.2 SDKにアップグレードすることを強くお勧めします。
システムサウンドを再アクティブ化してもうまくいかない場合は、audio-midi-setupを起動し、44.100Hz、2チャネル、24ビットを使用するように「ビルトイン出力」を設定します。 ( http://www.cocos2d-iphone.org/forum/topic/4159 から)
数日後、私のiPhoneシミュレーターは48.000Hz、2チャンネル、24ビットを必要としています。少し試してみてください。ヘッドフォンを接続したり、スタンバイになったり、再起動したりすると、ランダムに変化する可能性があることに注意してください。
トピック外のヒントがあります:ヘッドフォンをiPhone/iPadに接続すると、バッファサイズが2倍になる場合があります(512バイトから1024バイトなど)、要求したバッファサイズに依存しないようにしてください!