我的應用程序中存在一個奇怪的錯誤。我使用AVAudioPlayer播放聲音(多個實例),通過耳機完美播放聲音,但使用沒有耳機的應用程序不會產生揚聲器發出的聲音。所有的音頻剪輯都是AAC編碼的。應用程序的音頻無法通過揚聲器工作
我已經嘗試通過Objective-C API([AVAudioSession sharedInstance])和C API設置AVAudioSession屬性,但沒有一個選項似乎工作。
我的應用程序中存在一個奇怪的錯誤。我使用AVAudioPlayer播放聲音(多個實例),通過耳機完美播放聲音,但使用沒有耳機的應用程序不會產生揚聲器發出的聲音。所有的音頻剪輯都是AAC編碼的。應用程序的音頻無法通過揚聲器工作
我已經嘗試通過Objective-C API([AVAudioSession sharedInstance])和C API設置AVAudioSession屬性,但沒有一個選項似乎工作。
在iPhone上的問題 - 當聲音很低 - 似乎有人來了電話聽筒,而不是底部揚聲器(未 耳機插孔) - 改變默認爲SPEAKER
//http://stackoverflow.com/questions/3104562/avaudiorecorder-avaudioplayer-sound-output-on-internal-speaker-how-to-chang
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
sizeof (doChangeDefaultRoute),
&doChangeDefaultRoute
);
接受的答案(中ios7)沒有爲我工作,下面的代碼工作。 (我沒有足夠的積分,評論,發佈此作爲單獨的答案)
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
error:nil];
+1!這也幫助我解決了與AVSpeechUtterance數量極低有關的半相關問題。非常感謝你!看到http://stackoverflow.com/a/28922543/2578205 – Glavin001
工作就像一個魅力!謝謝 :) –
對於那些使用Swift Syntax
...
下面爲我工作。
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
}
catch {
print("can't default to speaker ")
}
您是否嘗試調高音量?它可能被靜音,內置揚聲器有獨立的音量級別。 –
是的,音量很好。 – SMK
同樣的問題在這裏 – intomo