代码之家  ›  专栏  ›  技术社区  ›  Newbie Questions

当用户打开静音开关时静音

  •  0
  • Newbie Questions  · 技术社区  · 8 年前

    最近,我开始在我的项目中添加音频,当你点击一个按钮时,它会产生很好的声音效果,但即使我的iPhone的静音开关打开,声音仍会播放。我想知道如何检测用户是否切换了静音开关,如果是,则完全静音应用程序的声音。

    2 回复  |  直到 8 年前
        2
  •  0
  •   Community M-A    7 年前

    苹果没有任何直接的API来了解iPhone的静音模式。然而,我们确实有一些工作要解决。

    上一个SO答案可以帮助您找到解决方法。

    How to programmatically sense the iPhone mute switch?

    How can I detect whether an iOS device is in silent mode or not?

    对于来自SO的快速有效解决方案 answer .

    // "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.");
    }