2013-10-07 53 views
3

我正在使用以下代碼播放錄音。在iOS 6中,輸出會自動導向揚聲器/耳機。但是,在iOS 7中,音頻直接指向耳機。 iOS 7中AVAudioPlayer的行爲有變化嗎?AVAudioPlayer直接指向揚聲器/耳機而不是耳機iOS 7

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

我有這個完全相同的問題。我通過覆蓋音頻輸出將其強制到揚聲器來解決這個問題,但現在如果有人連接外部揚聲器或耳機,音頻將無法正確路由。你有什麼進展嗎? – Bek

+1

我設法通過將音頻會話指定爲只播放來修復它,而不是記錄和播放。 – nicktones

回答

0

iOS 7只是更改默認值,現在音頻默認路由到耳機。要更改默認值,請將代碼片段插入代碼中的任何位置,在實例化AVAudioPlayer之前或之後無關緊要。

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