1

AudioSessionのカテゴリをからに変更した後kAudioSessionCategory_MediaPlaybackkAudioSessionCategory_PlayAndRecord録音AudioQueueStartを開始するためにメソッドが約3〜5秒ハングしました。

この問題は、iOS 5を実行しているiOSデバイスでのみ発生し、シミュレーター、またはiOS4またはiOS3を実行しているデバイスでは発生しません。

これが私が試したことです:

カテゴリを変更せずに常に使用する場合はkAudioSessionCategory_PlayAndRecord、すべてが正常に機能します。AudioQueueStart約0.01秒で録音を開始します。でも、デバイスのスピーカーから音を出して欲しいので、いつも使えませんkAudioSessionCategory_PlayAndRecord

使用するkAudioSessionOverrideAudioRoute_SpeakerkAudioSessionCategory_PlayAndRecord同時に、それは良い考えですが、そうする場合はkAudioSessionProperty_AudioRouteChange、ユーザーがヘッドフォンを接続または取り外したり、Bluetoothヘッドセットを接続したりするなど、多くの状況にも対処する必要があります。複雑すぎます。

任意のアドバイスや解決策をいただければ幸いです。

4

1 に答える 1

3

最後に、iOS5のバグであると私が信じている問題を回避する方法を見つけました。

カテゴリをに設定しkAudioSessionCategory_PlayAndRecord、以下のコードを使用します。

UInt32 defaultToSpeaker = TRUE;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(defaultToSpeaker), &defaultToSpeaker);

kAudioSessionProperty_OverrideCategoryDefaultToSpeakerIDはiOS3.1以降でのみ使用可能であることに注意してください。

于 2011-10-14T06:50:25.483 に答える