2

そのため、これを行うことができないというオンラインの情報は見つかりませんが、iPhone で実行しようとすると、AudioQueueSetParameter からエラーが返されます。具体的には、このコードを試してみると:

AudioQueueParameterValue val = f;
XThrowIfError(AudioQueueSetParameter(mQueue, kAudioQueueParam_Volume, val), "set queue volume");

次に、次のエラーが表示されます: kAudioQueueErr_InvalidParameter. Apple のドキュメントには、「指定されたパラメータ ID が無効です」という意味があると記載されています。

しかし、出力キューでまったく同じコードを試してみると、問題なく動作します。出力の音量を変更できるのに、入力の音量を変更できない理由を知っている人はいますか?

ありがとう

4

2 に答える 2

2

Apple の Audio Queue Services Referenceによると、 AudioQueue パラメータは再生オーディオ キューにのみ適用されます。

入力ストリームに関する情報を取得するには、AudioQueue プロパティを使用してみてください。

// streamDescription here means your AudioStreamBasicDescription
UInt32 levelSize = sizeof(AudioQueueLevelMeterState) * streamDescription.mChannelsPerFrame;
AudioQueueLevelMeterState *level = (AudioQueueLevelMeterState*)malloc(levelSize);
if (AudioQueueGetProperty(inQueue,
                          kAudioQueueProperty_CurrentLevelMeter,
                          &levelSize,
                          &level) == noErr) {
    printf("Current peak: %f", level[0].mPeakPower);
}
于 2011-06-09T09:58:22.970 に答える