我想直接的iOS VoiceOver的聲音耳機,即使它沒有插入。的iOS強制音頻輸出只有耳機插孔
換句話說,而我的應用程序打開時,VoiceOver的聲音(和其他聲音由我扮演在應用程序中使用AVSpeechUtterance
等)不應該去揚聲器,但應該從耳機,如果連接。
任何人都可以提出一些建議嗎?
我想直接的iOS VoiceOver的聲音耳機,即使它沒有插入。的iOS強制音頻輸出只有耳機插孔
換句話說,而我的應用程序打開時,VoiceOver的聲音(和其他聲音由我扮演在應用程序中使用AVSpeechUtterance
等)不應該去揚聲器,但應該從耳機,如果連接。
任何人都可以提出一些建議嗎?
顯然,除非將附件插入耳機插孔(這會激活物理開關以將聲音引導至耳機),否則無法強制將聲音直接引導至耳機。
我已經使用下面的代碼(在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")
}
除非當前已將可識別的(正確阻抗等)耳機或耳機插入插孔,否則iOS設備不會爲耳機插孔啓動音頻輸出。
如果插入了有效的音頻,並且沒有被覆蓋,VoiceOver音頻將始終轉到耳機。
謝謝你的迴應。當我的應用程序運行時,我的實際擔心是在未連接耳機時阻止音頻進入外部揚聲器,這是我現在通過將揚聲器從揚聲器指向揚聲器(從您聽電話的位置)實現的。我使用了以下代碼: 'let session:AVAudioSession = AVAudioSession.sharedInstance()嘗試session.setCategory(AVAudioSessionCategoryPlayAndRecord)嘗試session.overrideOutputAudioPort(AVAudioSessionPortOverride.None)嘗試session.setActive(true) – Maverick