Ios6 AVAudioPlayer直接连接扬声器/耳机,而不是听筒iOS 7

Ios6 AVAudioPlayer直接连接扬声器/耳机,而不是听筒iOS 7,ios6,ios7,avfoundation,avaudioplayer,Ios6,Ios7,Avfoundation,Avaudioplayer,我正在使用以下代码播放录音。在iOS 6中,输出自动指向扬声器/耳机。然而,在iOS 7中,音频被定向到听筒。iOS 7中的AVAudioPlayer行为是否发生了变化 if (!recorder.recording){ player = [[AVAudioPlayer alloc] initWithContentsOfURL:recorder.url error:nil]; [player setDelegate:(id)self]; [player prepa

我正在使用以下代码播放录音。在iOS 6中,输出自动指向扬声器/耳机。然而,在iOS 7中,音频被定向到听筒。iOS 7中的AVAudioPlayer行为是否发生了变化

    if (!recorder.recording){
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:recorder.url error:nil];
    [player setDelegate:(id)self];
    [player prepareToPlay];
    [player play];
}

iOS 7只是更改了默认设置,现在默认情况下音频被路由到耳机。若要更改默认设置,请在代码中的任意位置插入此代码段,在实例化AVAudioPlayer之前或之后都无所谓

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);

我也有同样的问题。我通过覆盖音频输出将其强制传输到扬声器来修复此问题,但现在如果有人连接外部扬声器或耳机,音频将无法正确路由。您在这方面取得了更多的进展吗?我通过将音频会话指定为“仅播放”,而不是“录制并播放”,成功地解决了这一问题。