2011-11-27 4 views
1

AudioUnit을 사용하여 출력에 사인파를 렌더링하는 간단한 코드가 있습니다. 내 질문은 : 프레임에 넣어야하는 값의 범위는 무엇입니까? 내 말은 AudioUnitRender 함수에서 버퍼 배열에 오디오 데이터를 몇 개 제공해야한다는 것입니다. 그래서 어떤 값을 넣어야합니까? 현재 -1에서 1까지의 값을 삽입하고 있지만 더 큰 값을 사용할 수도 있습니다 ...AudioUnit 프레임의 최대 값은 무엇입니까?

그래서 사용해야 할 최대 값은 무엇입니까 (100 % 볼륨을 나타냄)?

고마워요 :)

답변

3

전적으로 사용하는 스트림 형식에 따라 다릅니다. AudioStreamBasicDescription을 만들어 오디오 장치의 입력 형식으로 설정해야합니다. 다양한 스트림 형식이 있으며 각각에는 "100 % 볼륨"이 무엇인지 나타내는 다른 방법이 있습니다. 부동 소수점을 선택하면 예를 들어 -1.0 ~ 1.0이되지만 부호없는 16 비트를 선택하면 0에서 65535가됩니다.

설정하는 코드는 확실하지 않습니다. 오디오 기기하지만 좋은 예는 여기에 표시된 것 같다 : 그 예에서 http://atastypixel.com/blog/using-remoteio-audio-unit/

당신은 채널 당 16 비트 및 1 개 채널에서의 kAudioFormatFlagIsSignedInteger 플래그와 함께 AudioStreamBasicDescription 및 선택 선형 PCM을 만드는 것 알 수 있습니다. 즉, 값이 -32768에서 32767로 변경됩니다.

관련 문제