OStack程序员社区-中国程序员成长平台

标题: ios - 是否可以以编程方式将音频输出重定向到 iOS 中的手机扬声器或耳机 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 20:38
标题: ios - 是否可以以编程方式将音频输出重定向到 iOS 中的手机扬声器或耳机

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

有什么想法吗?



Best Answer-推荐答案


您无法通过您的应用打开/关闭扬声器。但是,您可以感觉到设备的静音开关。通过它您可以知道扬声器的当前状态。 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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4