4

私は iPhone 用のカード リーダーを使用しており、リーダーが接続されている間にサウンドを再生する必要があります。他の問題により、AudioServicesPlaySystemSound を使用しました。しかし、リーダーが接続されている場合、サウンドはスピーカーから再生されません。

AudioServicesPlaySystemSound の使用中に音声チャネルをスピーカーに変更する方法はありますか?


UInt32 doChangeDefaultRoute = 1;

AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
                         sizeof (doChangeDefaultRoute),
                         &doChangeDefaultRoute
                         ); 

上記のコードを試しました。いくつかの奇妙な動作を示しています。以下のケースを観察しました。

  • ケース 1:リーダーを接続し、サウンドを再生しようとしました。サウンドの再生に失敗しました。
  • ケース 2:リーダーのプラグを抜き、スピーカーからサウンドを 1 回再生しました。次に、リーダーを接続して、同じサウンドを再生しようとしました。できます!

しかし、どちらの場合もサウンドを再生する必要があります。

注: カード リーダーの代わりに、オーディオ ジャックを備えた任意のデバイスを使用できます。ヘッドセットでも使えます。

4

1 に答える 1

0

スピーカーへのサウンド出力をオーバーライドすることができます:

UInt32 doChangeDefaultRoute = 1;

AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
                         sizeof (doChangeDefaultRoute),
                         &doChangeDefaultRoute
                         );  
于 2012-07-18T06:50:37.250 に答える