【问题标题】:How do I set/get the volume level with Core Audio?如何使用 Core Audio 设置/获取音量级别?
【发布时间】:2012-11-04 15:23:58
【问题描述】:

我希望能够使用 Core Audio 获取和设置系统音量。我已经遵循了另一个线程上的代码: objective c audio meter

但是,我调用 AudioHardwareServiceHasProperty 以查找 kAudioHardwareServiceDeviceProperty_VirtualMasterVolume 属性返回 false。为什么会发生这种情况,我该如何解决?我应该采取什么方法来获取和设置 Core Audio 的系统音量?

【问题讨论】:

    标签: macos audio core-audio volume


    【解决方案1】:

    您是否尝试过 kAudioDevicePropertyVolumeScalar:

    UInt32 channel = 1; // Channel 0  is master, if available
    AudioObjectPropertyAddress prop = { 
        kAudioDevicePropertyVolumeScalar, 
        kAudioDevicePropertyScopeOutput,
        channel 
    };
    
    if(!AudioObjectHasProperty(deviceID, &prop))
        // error
    
    Float32 volume;
    UInt32 dataSize = sizeof(volume);
    OSStatus result = AudioObjectGetPropertyData(deviceID, &prop, 0, NULL, &dataSize, &volume);
    
    if(kAudioHardwareNoError != result)
        // error
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多