iOS-检测静默模式
我需要检测手机是否处于静音模式。我找到并(播放一个.caf文件),但没有一个工作正常。旧方法使用不推荐使用的工具,而新方法在这两种情况下(静默模式和非静默模式)总是给出“否”iOS-检测静默模式,ios,objective-c,iphone,silent,Ios,Objective C,Iphone,Silent,我需要检测手机是否处于静音模式。我找到并(播放一个.caf文件),但没有一个工作正常。旧方法使用不推荐使用的工具,而新方法在这两种情况下(静默模式和非静默模式)总是给出“否” 在这一点上,有人能提出什么建议吗 试试下面的解决方案,并告诉我它是否适合您: -(BOOL)silenced { #if TARGET_IPHONE_SIMULATOR // return NO in simulator. Code causes crashes for some reason
在这一点上,有人能提出什么建议吗 试试下面的解决方案,并告诉我它是否适合您:
-(BOOL)silenced {
#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);
if(CFStringGetLength(state) > 0)
return NO;
else
return YES;
}
看到这里,你可以在这里找到你的答案:@Anbu.Karthik的可能副本这是Swift,但没关系,我尝试了它的Objective-C版本,但没有得到好的结果。@sschunara这个答案使用了我提到的旧方法。它们都不推荐使用,与其他不推荐使用的方法不同,这些方法无法正常工作。不,此解决方案与旧方法一样,无法正常工作,因为正如我多次提到的,AudioSessionInitialize和getProperty方法都不推荐使用。在两种情况下(无论是否静默),它都返回NO。