7

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

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

4

3 回答 3

20

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

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
                                 withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
                                       error:nil];
于 2014-09-11T18:15:41.300 回答
5

iPhone 上的问题 - 当声音非常低时 - 似乎是从手机耳机(不是耳机插孔)而不是底部扬声器中出来 - 更改为 DEFAULT TO 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
);
于 2012-07-11T11:41:34.650 回答
2

对于那些使用Swift Syntax...

下面为我​​工作。

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
   } 
catch {
          print("can't default to speaker ")
      }
于 2016-08-15T08:33:26.383 回答