ios - 是否可以通过编程将音频输出重定向到 iOS 中的电话扬声器或耳机

标签 ios iphone audio

我正在开发一个应用程序,我想在其中将音频输出重定向到电话扬声器,但我不知道如何以编程方式执行此操作。

有什么想法吗?

最佳答案

您无法通过您的应用打开/关闭扬声器。但是,您可以感觉到设备的静音开关。通过它你可以知道演讲者的当前状态。 This Question将引导您找到解决方案。

为了完整起见,让我把答案贴在这里..

// "Ambient" makes it respect the mute switch
// Must call this once to init session
if (!gAudioSessionInited)
{
    AudioSessionInterruptionListener    inInterruptionListener = NULL;
    OSStatus    error;
    if ((error = AudioSessionInitialize (NULL, NULL, inInterruptionListener, NULL)))
    {
        NSLog(@"*** Error *** error in AudioSessionInitialize: %d.", error);
    }
    else
    {
        gAudioSessionInited = YES;
    }
}

SInt32  ambient = kAudioSessionCategory_AmbientSound;
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (ambient), &ambient))
{
    NSLog(@"*** Error *** could not set Session property to ambient.");
}

更新: 您需要覆盖 AudioRoute 以在插入耳机时打开扬声器。使用以下代码。

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

确保在 Xcode 中包含 AudioToolbox 库。我认为它会解决您的问题..

如果需要更多信息,请告诉我..:)

关于ios - 是否可以通过编程将音频输出重定向到 iOS 中的电话扬声器或耳机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22550744/

相关文章:

ios - 如何将视频添加到 Storyboard页面 (Xcode 6)

iphone - 什么是卓悦?

audio - 对音符发作检测过滤器有疑问吗?

iphone - 关于NSMutableArray添加NS​​Array问题

iphone - 需要有关 iPhone 应用程序国际化的帮助

html - 基于用户的音频提交的状态如何?

cordova - Phonegap应用中的音频标签

ios - 自定义 ViewController 中的 UITableView : Custom UITableViewCells Are Overlapping

ios - UIButton 在自定义 UITableViewCell 中没有响应

ios - UITapGestureRecognizer 只检测父 View 点击