2016-02-25 69 views
1

我想直接的iOS VoiceOver的聲音耳機,即使它沒有插入。的iOS強制音頻輸出只有耳機插孔

換句話說,而我的應用程序打開時,VoiceOver的聲音(和其他聲音由我扮演在應用程序中使用AVSpeechUtterance等)不應該去揚聲器,但應該從耳機,如果連接。

任何人都可以提出一些建議嗎?

回答

1

顯然,除非將附件插入耳機插孔(這會激活物理開關以將聲音引導至耳機),否則無法強制將聲音直接引導至耳機。

我已經使用下面的代碼(在Swift中)實現了我的目的,該代碼將VoiceOver和其他聲音指向手機揚聲器(從我們聽電話的地方),並在應用程序處於前景時使揚聲器靜音。

let session: AVAudioSession = AVAudioSession.sharedInstance() 
do { 
    try session.setCategory(AVAudioSessionCategoryPlayAndRecord) 
    try session.overrideOutputAudioPort(AVAudioSessionPortOverride.None) 
    try session.setActive(true) 
} catch { 
    print("Couldn't override output audio port") 
} 
1

除非當前已將可識別的(正確阻抗等)耳機或耳機插入插孔,否則iOS設備不會爲耳機插孔啓動音頻輸出。

如果插入了有效的音頻,並且沒有被覆蓋,VoiceOver音頻將始終轉到耳機。

+0

謝謝你的迴應。當我的應用程序運行時,我的實際擔心是在未連接耳機時阻止音頻進入外部揚聲器,這是我現在通過將揚聲器從揚聲器指向揚聲器(從您聽電話的位置)實現的。我使用了以下代碼: 'let session:AVAudioSession = AVAudioSession.sharedInstance()嘗試session.setCategory(AVAudioSessionCategoryPlayAndRecord)嘗試session.overrideOutputAudioPort(AVAudioSessionPortOverride.None)嘗試session.setActive(true) – Maverick

相關問題