0

Fmod を使用してマイク入力の音量を取得しようとしていますが、getVolume は常に 0 を返します。はい、テストしたところ、マイクは正常に動作しました。

これはループで実行されます。

float tempvolume = 0.0f;
result = channel->getVolume(&tempvolume);
ERRCHECK(result);

//Set the sound volume
channel->getVolume(&tempvolume);
if (tempvolume < 0.1f){
    do something
}else{
    do something else
}

しかし、私が言ったように、tempvolume は常に 0.0 です。

私に何ができる?

編集:「getVolume」は、チャンネルに設定した音量を単に返すだけであることに気付きました。したがって、質問全体が「マイクからの音量を検出するにはどうすればよいですか?」に変わります。

4

1 に答える 1

1

FMODは、マイクのハードウェアまたはOSの音量レベルを表示しません。

現在の録音信号の音量を測定する場合は、System :: recordStartを検討し、返されたFMOD :: Soundを再生してから、Channel::getWaveDataを呼び出します。必要に応じて、波のデータを好きなように処理して、ピークまたはRMSを探すことができます。

于 2012-12-20T11:33:10.773 に答える