AudioServicesPlaySystemSound在插入读卡器时无法在iphone中工作

时间:2012-07-18 06:37:25

标签: iphone ios xcode cocoa-touch cardreader

我正在使用iPhone的读卡器,我需要在插入读卡器时播放声音。由于其他一些问题,我使用了AudioServicesPlaySystemSound。但是当插入阅读器时,声音不会通过扬声器播放。

使用AudioServicesPlaySystemSound时是否有任何方法可以将音频通道更改为扬声器?


UInt32 doChangeDefaultRoute = 1;

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

我试过上面的代码。它显示了一些奇怪的行为。我观察了以下情况:

  • 案例1:插入阅读器并尝试播放声音。播放声音失败。
  • 案例2 :拔掉读卡器并通过扬声器播放一次声音。然后插入阅读器并尝试播放相同的声音。有用!

但我需要在两种情况下播放声音。

注意:您可以使用任何带有音频插孔的设备,而不是读卡器。甚至可以使用头套。

1 个答案:

答案 0 :(得分:0)

您可以尝试将声音输出覆盖到扬声器:

UInt32 doChangeDefaultRoute = 1;

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