본문 바로가기
Dev.Mobile/iPhone

[iOS] 오디오 입력 레벨 (녹음 게인) 조정 (in iOS5)

by Devkin 2011. 11. 10.

iOS 5 이전 버젼에서는 오디오 입력 레벨의 조정이 Programmatic 하게 조정이 불가하였으나, iOS 5 에서 해당 기능 지원. Apple 에서 제공하는 문서 What's New in iOS 의 Core Audio 섹션을 보면, 단순히 There is now programmatic support for adjusting the audio input gain. 문구만 달랑 있어 감을 잡기 어려워 관련 내용을 정리.

Implementation

AudioSessionSetProperty 펑션의 PropertyID 로 kAudioSessionProperty_Mode 를 지정하고, Value 로 kAudioSessionMode_Measurement 지정하여 입력 게인 조정 기능 활성화. 입력 레벨을 조정하기 이전에, 해당 디바이스에서 해당 기능을 지원하는지 여부를 확인하고 입력 레벨 조정.


// Sample Code
// Set Audio Input Level Property
UInt32 mode = kAudioSessionMode_Measurement;
AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(mode), &mode);

// 레벨 조정 지원여부 확인
UInt32 available;
UInt32 size = sizeof(available);
AudioSessionGetProperty(kAudioSessionProperty_InputGainAvailable, &size, &available);

// 조정 가능시, 원하는 레벨 [0.0 ~ 1.0] 입력
if(available)
{
    Float32 gain = 0.5 // Range : 0.0 ~ 1.0
    AudioSessionSetProperty(kAudioSessionProperty_InputGainScalar, sizeof(gain), &gain);
}; 
반응형

댓글