我一直在浏览音频会话类别和覆盖,无论是否设置了静音开关或屏幕被锁定(AVAudioSessionCategoryPlayback),您都可以播放音频,或者您可以尊重静音开关和屏幕锁定设置(AVAudioSessionCategorySoloAmbient)。
我知道如何播放静音开关静音的音频,但在屏幕锁定时继续播放?我想要的就是吃蛋糕,吃它。
为了回答不可避免的“为什么你想要绕过系统”的问题,这是一个显示文字和播放音乐的应用程序,可能会在教堂和家庭环境中使用。在教堂,如果应用程序开始播放音乐会很糟糕,因此我想尊重静音开关。在家里,您可以将手机设置为在做其他事情时听音乐,当手机自动锁定时,您不希望它停止播放。
答案 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);
}