0

私は OS X を使用しており、話している間、入力音量を継続的に読み取らなければなりません (Siri のように、力強い声または弱い声の紫色のバーを高くまたは低く表示します)。このコードを試してみましたが、「パラメーター ID が無効です」が返されます。

    UInt32 size = sizeof(AudioQueueLevelMeterState) * record_state.data_format.mChannelsPerFrame;
    AudioQueueLevelMeterState *outValue = malloc(size);
OSStatus errorMsg = AudioQueueGetProperty (record_state.queue, kAudioQueueProperty_CurrentLevelMeter,  &outValue, &size     );

    if (!errorMsg) {
        printf("Volume: %f", outValue[0].mPeakPower);
    }
    else
    {
        printf("Er: %i", errorMsg);
    }

どのようにできるのか?ありがとう。

4

1 に答える 1

1

kAudioQueueProperty_EnableLevelMeteringプロパティを設定してメータリングを有効にしましたか? そうでない場合は、それが原因である可能性があります。

于 2012-12-03T21:31:27.143 に答える