Я работаю над библиотекой iOS для воспроизведения аудиообъявлений, я хочу каждый раз перед запросом объявления проверять, равна ли громкость вывода устройства нулю (без звука или без звука).
Я использовал следующий codeAny для проверки выходного объема устройства.
+(BOOL)isDeviceMuted
{
Float32 val = -1.0;
UInt32 propertySize = sizeof(val);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, &propertySize, &val);
NSLog(@"value of volume: %f",val);
if (val <= 0) {
return YES;
}
else {
return NO;
}
}
Этот код отлично работает до сих пор, но проблема в том, что AudioSessionGetProperty устарела в iOS 7, и я хочу заменить этот код новым, который не устарел (минимум iOS SDK — 6)
Я пробовал следующее
val = [[AVAudioSession sharedInstance] outputVolume];
но проблема с outputVolume в том, что ему нужно, чтобы аудиосессия была активной, чтобы отслеживать изменения на нем.
[[AVAudioSession sharedInstance] setActive: YES error: nil];
и мы не можем сделать это внутри библиотеки, так как это повлияет на пользовательское приложение (sharedInstance)
Есть идеи !!