현재 볼륨 키로 설정할 수있는 사용자 시스템 오디오 값의 값을 성공적으로 반환하는 코드가 있습니다.Mac 오디오 레벨을 얻는 방법?
그러나 내가 원한 것은 스피커가 재생하는 오디오의 가치입니다. 따라서 사용자가 Netflix를보고 캐릭터가 비명을 지르는 경우 캐릭터가 속삭이는 것보다 값이 더 높아집니다. 지금이
코드 :
+ (AudioDeviceID)defaultOutputDeviceID {
OSStatus status = noErr;
AudioDeviceID outputDeviceID = kAudioObjectUnknown;
AudioObjectPropertyAddress propertyAOPA;
propertyAOPA.mElement = kAudioObjectPropertyElementMaster;
propertyAOPA.mScope = kAudioObjectPropertyScopeGlobal;
propertyAOPA.mSelector = kAudioHardwarePropertyDefaultSystemOutputDevice;
UInt32 propertySize = sizeof(outputDeviceID);
if (!AudioHardwareServiceHasProperty(kAudioObjectSystemObject, &propertyAOPA)) {
NSLog(@"Cannot find default output device!");
return outputDeviceID;
}
status = AudioHardwareServiceGetPropertyData(kAudioObjectSystemObject, &propertyAOPA, 0, NULL, &propertySize, &outputDeviceID);
if(status) {
NSLog(@"Cannot find default output device!");
}
return outputDeviceID;
}
+ (float)volume {
OSStatus status = noErr;
AudioDeviceID outputDeviceID = [[self class] defaultOutputDeviceID];
if (outputDeviceID == kAudioObjectUnknown) {
NSLog(@"Unknown device");
return 0.0;
}
AudioObjectPropertyAddress propertyAOPA;
propertyAOPA.mElement = kAudioObjectPropertyElementMaster;
propertyAOPA.mScope = kAudioDevicePropertyScopeOutput;
propertyAOPA.mSelector = kAudioHardwareServiceDeviceProperty_VirtualMasterVolume;
Float32 outputVolume;
UInt32 propertySize = sizeof(outputVolume);
if (!AudioHardwareServiceHasProperty(outputDeviceID, &propertyAOPA)) {
NSLog(@"No volume returned for device 0x%0x", outputDeviceID);
return 0.0;
}
status = AudioHardwareServiceGetPropertyData(outputDeviceID, &propertyAOPA, 0, NULL, &propertySize, &outputVolume);
if (status) {
NSLog(@"No volume returned for device 0x%0x", outputDeviceID);
return 0.0;
}
if (outputVolume < 0.0 || outputVolume > 1.0)
return 0.0;
return outputVolume;
}
[현재 오디오 출력 장치의 현재 사운드 레벨을 어떻게 얻을 수 있습니까?] (http://stackoverflow.com/questions/11893555/how-can- i-get-the-current-sound-level-of-current-audio-output-device), [이 튜토리얼도 도움이 될 수 있습니다.] (http://www.raywenderlich.com/36475/how-to- 아이 - 오 - 뮤직 비주얼 라이저) – davidcondrey
정확히 같은 질문은 아닙니다. 오디오 레벨 자체를 찾고 있습니다. 시스템 오디오 레벨이 아닙니다. 그 대답의 코드는 정직하게 나에게 많은 도움이되지 못했습니다. –