【问题标题】:Force audio alert to loud speaker强制向扬声器发出音频警报
【发布时间】:2014-07-18 08:03:35
【问题描述】:

我有一个小应用程序。在这个应用程序中,我设置的每个特定时间扬声器都会发出噪音。

现在,我希望它通过内置扬声器发出噪音,即使设备中插入了耳机插孔。

我该怎么做?

【问题讨论】:

    标签: ios iphone core-audio


    【解决方案1】:

    您可以尝试以下代码在扬声器上播放代码。

    同时检查this

    希望这会对你有所帮助。

    [[AVAudioSession sharedInstance] setDelegate:self];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    
    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    
    AudioSessionSetProperty (
                             kAudioSessionProperty_OverrideAudioRoute,
                             sizeof (audioRouteOverride),
                             &audioRouteOverride
                             );
    

    【讨论】:

    • 我使用了您上面的代码,但是当我插入耳机插孔时,声音不再响亮:(
    • 插入耳机后,上面的代码在我的设备上运行良好。你可以试试这个链接-uihacker.blogspot.in/2013/08/…
    • 当耳机插孔已插入时,此代码适用于我。如果扬声器发出噪音,然后我将耳机插入设备,它就会静音。
    • 您可以查看此链接-stackoverflow.com/questions/6922898/…
    • 谢谢Shubhendu,我会再检查一遍:)
    【解决方案2】:

    您必须在插入耳机后覆盖音频路由。您的应用可以在发生这种情况时请求音频会话通知,然后再次进行覆盖。

    【讨论】:

      【解决方案3】:

      这对我有用。

      + (void)sessionAudioPort {
          UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
          AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
          UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
          AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多