Попробуйте это из source code:
- (void)setDefaultAudioDevice
{
UInt32 propertySize = 0;
OSStatus status = noErr;
AudioObjectPropertyAddress propertyAOPA;
propertyAOPA.mElement = kAudioObjectPropertyElementMaster;
propertyAOPA.mScope = kAudioObjectPropertyScopeGlobal;
propertyAOPA.mSelector = kAudioHardwarePropertyDefaultOutputDevice;
propertySize = sizeof(AudioDeviceID);
status = AudioHardwareServiceGetPropertyData(kAudioObjectSystemObject, &propertyAOPA, 0, NULL, &propertySize, &outputDeviceID);
if(status)
{
// Error
return;
}
}
- (void)muteHardwareVolume
{
UInt32 propertySize = 0;
OSStatus status = noErr;
AudioObjectPropertyAddress propertyAOPA;
[self setDefaultAudioDevice];
propertyAOPA.mElement = kAudioObjectPropertyElementMaster;
propertyAOPA.mScope = kAudioDevicePropertyScopeOutput;
propertyAOPA.mSelector = kAudioDevicePropertyMute;
propertySize = sizeof(UInt32);
UInt32 mute = 1;
status = AudioHardwareServiceSetPropertyData(outputDeviceID, &propertyAOPA, 0, NULL, propertySize, &mute);
if(status)
{
// Error
return;
}
}
Hy, спасибо за повтор, это не удалось «propertyAOPA» undentified, вы добавили столько кода, но поясню, если любая команда, такая как [NSApp setmute: True] или [VLCAudio setvolume: 0]; im usling libvlc, на OSX 10.9. Я знаю, что есть простая команда, которая отключается – RepoStack
Привет! Я не видел что-то вроде [NSApp setmute: True] или [VLCAudio setvolume: 0], только для QTMovie или AVPlayer, но не для системы. Для правильного примера компиляции вам нужно включить framework #import И объявить outputDeviceID –
toohtik
Не могли бы вы объяснить, как объявить outputDeviceID? , – RepoStack