簡體   English   中英

iPhone SDK audioSession問題

[英]iPhone SDK audioSession question

在我的應用程序中,我同時錄制和播放音頻。 該應用程序幾乎完成。 但是有一件事讓我煩惱。 當音頻會話設置為PlayAndRecord時,與SoloAmbient類別的相同聲音相比,聲音變得安靜。 有沒有什么方法可以使用PlayAndRecord讓聲音更響亮?

當您使用會話進行播放和錄制時,播放來自用於電話的揚聲器,否則它會從位於電話底部的揚聲器發出。 這是為了防止反饋。 你可以像這樣覆蓋它(但要小心反饋,如果你不同時做兩件事,那就不要問題)

    //when the category is play and record the playback comes out of the speaker used for phone conversation to avoid feedback
    //change this to the normal or default speaker

    UInt32 doChangeDefaultRoute = 1;        
    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);

這段代碼適用於3.1.2,早期的sdk你必須采用不同的方式。

    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
    status = AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride);

您必須小心這種方法,即使您插入了耳機,它也會覆蓋,您必須監控中斷並相應地更改路線。 現在使用3.1.2好多了

要求用戶插入耳機?

耳機+麥克風組合不會遇到這個問題。

我不知道這是一個錯誤,是音頻硬件的結果,還是安靜的播放只是一種有意和無聊的方式來獲得更清晰的錄音。

UPDATE

我發現設置PlayAndRecord會話會將您的音頻路徑更改為接收器。
顯然,該用例適用於電話應用程序,用戶可以將設備放在他的耳邊。

如果這不違反最低驚喜原則,我不知道是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM