私は iPhone 用のカード リーダーを使用しており、リーダーが接続されている間にサウンドを再生する必要があります。他の問題により、AudioServicesPlaySystemSound を使用しました。しかし、リーダーが接続されている場合、サウンドはスピーカーから再生されません。
AudioServicesPlaySystemSound の使用中に音声チャネルをスピーカーに変更する方法はありますか?
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
sizeof (doChangeDefaultRoute),
&doChangeDefaultRoute
);
上記のコードを試しました。いくつかの奇妙な動作を示しています。以下のケースを観察しました。
- ケース 1:リーダーを接続し、サウンドを再生しようとしました。サウンドの再生に失敗しました。
- ケース 2:リーダーのプラグを抜き、スピーカーからサウンドを 1 回再生しました。次に、リーダーを接続して、同じサウンドを再生しようとしました。できます!
しかし、どちらの場合もサウンドを再生する必要があります。
注: カード リーダーの代わりに、オーディオ ジャックを備えた任意のデバイスを使用できます。ヘッドセットでも使えます。