5

あらゆる場所を調べましたが、AVCaptureSession の入力デバイスの入力音量を調整する方法が見つかりません。私ができる最善の方法は、AVCaptureAudioDataOutput から接続 (AVCaptureConnections) にアクセスすることによって、つまり、プレビュー出力からレベルを監視することによって、デバイスからオーディオのレベルを取得することです。入力ゲインを変更したり、オーディオ入力レベルを AVFoundation で直接取得したりする方法はありますか? 私はまだ少し勉強しているので、明らかなことを見逃していたら申し訳ありません。

編集:これはOSX用であることに注意してください。

4

3 に答える 3

2

それで、彼がリンクされているという情報と、Core Audio に関する調査を使用して、それを github プロジェクトに変えました。そうすれば、AVFoundation の使用中にデバイスの入力音量を変更したい他の人が、車輪を再発明する必要がなくなります。ここでクラスを見つけることができます: https://github.com/ewrobinson/ERVolumeAdjust

于 2013-05-25T01:06:04.310 に答える
1
self.audioSession = [AVAudioSession sharedInstance];
if (self.audioSession.isInputGainSettable) {
    BOOL success = [self.audioSession setInputGain:sender.value error:&error];
    if (!success) NSLog(@"inputGain error: %@",error);
}

これはios6+用です...ios5の場合、AudioSessionGetProperty / AudioSessionSetProperty関数を使用して同じことを実現できます。

ただし、すべてのハードウェアが入力ゲインを調整できるわけではありません。たとえば、マイク内蔵の iPhone 3GS/ios6 ではゲインを設定できますが、マイク内蔵の iPad mini ではゲインを設定できません。iPhone 3GS では、録音が実際に開始されるまでゲインを設定することもできません。(編集:iPhone 4S/ios5も内蔵マイクでゲイン設定可能)

更新
ご指摘のとおり、iOS ではなく OSX ソリューションを探しています。この回答を(より詳細に)より良い場所に移動しました。

OSX の場合、次の Q&A が役立つ場合があります。

内蔵入力 (OSX Core Audio / Audio Unit) の入力レベル (ゲイン) をどのように設定しますか?

于 2013-05-07T02:57:33.090 に答える