4

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

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


UInt32 doChangeDefaultRoute = 1;

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

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

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

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

注意:您可以使用任何带有音频插孔的设备来代替读卡器。甚至可以使用耳机。

4

1 回答 1

0

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

UInt32 doChangeDefaultRoute = 1;

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