首页 文章

App的音频无法通过扬声器工作

提问于
浏览
6

我的应用程序中有一个奇怪的错误 . 我正在使用AVAudioPlayer播放声音(它的多个实例),声音通过耳机完美地工作,但使用没有耳机的应用程序不会产生扬声器发出的声音 . 所有音频剪辑都是AAC编码的 .

我已经尝试通过Objective-C API([AVAudioSession sharedInstance])和C API设置AVAudioSession属性,但是这些选项似乎都不起作用 .

3 回答

  • 19

    iPhone上的问题 - 当声音非常低时 - 似乎它是从手机耳机(而不是耳机插孔)而不是底部扬声器 - 更改为默认发言人

    //http://stackoverflow.com/questions/3104562/avaudiorecorder-avaudioplayer-sound-output-on-internal-speaker-how-to-chang
    
    
    UInt32 doChangeDefaultRoute = 1;
    AudioSessionSetProperty (
        kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
        sizeof (doChangeDefaultRoute),
        &doChangeDefaultRoute
    );
    
  • 4

    接受的答案(在ios7中)对我不起作用,以下代码确实有效 . (我没有足够的评论意见,将其作为单独答案发布)

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
                                     withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
                                           error:nil];
    
  • 2

    对于那些使用 Swift Syntax 的人......

    以下为我工作 .

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

相关问题