在iPhone控制扬声器

时间:2013-02-11 09:23:23

标签: ios objective-c

感谢您的时间。

我对iPhone中的扬声器控制有疑问。我们在iPhone上有两个扬声器:

  1. 耳机 ----当我们在耳边通话时我们有发言人
  2. 底部扬声器 ----当我们播放时,音乐声音来自底部扬声器
  3. 我的疑问是:我已经使用了两个UISwitch,即Ear_speaker,Bottom_Speaker。

    如果我在播放时打开Ear_speaker,声音应仅来自Ear_speaker,如果我关闭耳机扬声器,声音不应来自耳机扬声器。

    Bottom_Speaker也有相同的功能。

1 个答案:

答案 0 :(得分:2)

设置音频会话

[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];

在UISwitch中实现它:

这会将音频路线更改为底部发言人:

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;

AudioSessionSetProperty (
                         kAudioSessionProperty_OverrideAudioRoute,
                         sizeof (audioRouteOverride),
                         &audioRouteOverride                                               
                         );

这会将音频路由更改为“耳机”:

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;

AudioSessionSetProperty (
                         kAudioSessionProperty_OverrideAudioRoute,
                         sizeof (audioRouteOverride),
                         &audioRouteOverride                                               
                         );