2012-06-06 7 views
5

내 응용 프로그램에 이상한 버그가 있습니다. AVAudioPlayer를 사용하여 여러 개의 사운드를 재생할 때 사운드가 헤드폰을 통해 완벽하게 작동하지만 헤드폰없이 앱을 사용하면 스피커에서 소리가 나지 않습니다. 모든 오디오 클립은 AAC로 인코딩됩니다.스피커를 통해 응용 프로그램의 오디오가 작동하지 않습니다.

Objective-C API ([AVAudioSession sharedInstance])와 C API를 통해 AVAudioSession 속성을 설정해 보았지만 옵션 중 아무 것도 작동하지 않는 것 같습니다. 아이폰에

+1

볼륨을 높이려고 했습니까? 소리가 나지 않을 수 있으며 내장 스피커에 대한 별도의 볼륨 레벨이 있습니다. –

+0

예, 음량이 좋습니다. – SMK

+0

여기에서 같은 문제가 – intomo

답변

4

ISSUE - 소리가 매우 낮은 - DEFAULT로 변경 스피커

//http://stackoverflow.com/questions/3104562/avaudiorecorder-avaudioplayer-sound-output-on-internal-speaker-how-to-chang 


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

허용 대답에게 (에 - 대신 바닥 스피커 (안 헤드폰 잭) 전화 귀 조각을오고 듯 ios7)이 작동하지 않으면 다음 코드가 작동합니다.

아래는 나를 위해 일한 ... Swift Syntax를 사용하여 당신의 사람들을 위해

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker 
             error:nil]; 
+0

+1! 이것은 또한 AVSpeechUtterance 볼륨이 매우 낮은 반 관련 문제로 나를 도왔습니다. 고마워요! http://stackoverflow.com/a/28922543/2578205 – Glavin001

+0

매력처럼 작동 !!!! 감사 :) –

2

(나는이 별도의 답변을 게시, 의견을 충분히 포인트가 없습니다).

do { 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker) 
    } 
catch { 
      print("can't default to speaker ") 
     } 
관련 문제