屏幕锁定时是否可以在iPhone上播放音频,但是在设置静音开关时却没有?

时间:2011-09-05 14:53:08

标签: iphone ios audio

我一直在浏览音频会话类别和覆盖,无论是否设置了静音开关或屏幕被锁定(AVAudioSessionCategoryPlayback),您都可以播放音频,或者您可以尊重静音开关和屏幕锁定设置(AVAudioSessionCategorySoloAmbient)。

我知道如何播放静音开关静音的音频,但在屏幕锁定时继续播放?我想要的就是吃蛋糕,吃它。

为了回答不可避免的“为什么你想要绕过系统”的问题,这是一个显示文字和播放音乐的应用程序,可能会在教堂和家庭环境中使用。在教堂,如果应用程序开始播放音乐会很糟糕,因此我想尊重静音开关。在家里,您可以将手机设置为在做其他事情时听音乐,当手机自动锁定时,您不希望它停止播放。

1 个答案:

答案 0 :(得分:1)

您可以使用AVAudioSessionCategoryPlayback并使用此代码检查静音开关是打开还是关闭:

- (BOOL)deviceIsSilenced
{
    #if TARGET_IPHONE_SIMULATOR
        // return NO in simulator. Code causes crashes for some reason.
        return NO;
    #endif

    CFStringRef state;
    UInt32 propertySize = sizeof(CFStringRef);
    AudioSessionInitialize(NULL, NULL, NULL, NULL);
    AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);

    return (CFStringGetLength(state) <= 0);
}