Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iPhone中的控制扬声器_Ios_Objective C - Fatal编程技术网

Ios iPhone中的控制扬声器

Ios iPhone中的控制扬声器,ios,objective-c,Ios,Objective C,谢谢你抽出时间 我对iPhone中的扬声器控制有疑问。iPhone中有两个扬声器: 耳朵扬声器——当我们在电话里用耳朵说话时,我们有扬声器 底部扬声器——当我们播放音乐时,声音来自底部扬声器 我的疑问是:我已经用了两个UI开关,它们是耳朵扬声器,底部扬声器 如果我在播放时打开耳朵扬声器,声音应该只来自耳朵扬声器,如果我关闭耳朵扬声器,声音不应该来自耳朵扬声器 底部扬声器也具有相同的功能。设置音频会话 [[AVAudioSession sharedInstance] setDelegate:sel

谢谢你抽出时间

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

  • 耳朵扬声器——当我们在电话里用耳朵说话时,我们有扬声器
  • 底部扬声器——当我们播放音乐时,声音来自底部扬声器
  • 我的疑问是:我已经用了两个UI开关,它们是耳朵扬声器,底部扬声器

    如果我在播放时打开耳朵扬声器,声音应该只来自耳朵扬声器,如果我关闭耳朵扬声器,声音不应该来自耳朵扬声器


    底部扬声器也具有相同的功能。

    设置音频会话

    [[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                                               
                             );