2013-03-15 6 views
0

얼마나 많은 오디오 버퍼가 채워 졌는지 확인할 수 있습니까? 오실레이터와 같은 화면에 오디오 버퍼를 그릴 수있는 실행중인 앱이 있지만 화면에서 터치하면 캡처를 중단하고 현재 버퍼를 그립니다. 그래서 얼마나 많은 버퍼가 채워 졌는지 알아 내야합니다. 현재 버퍼 크기는 256입니다.오디오 버퍼가 얼마나 채워 졌는지 확인할 수 있습니까?

iOS의 오디오 버퍼로이를 수행 할 수 있습니까?

감사합니다.

답변

2

AudioUnitRender으로 전화하면 전체 버퍼가 전달됩니다.

버퍼 크기가 256 프레임 인 경우, 44100 프레임/초 (또는 심지어 11025)로 실행한다고 가정 할 때 전체 버퍼에 실질적인 차이가 있는지 여부는 알 수 없습니다. 놀라 울 정도로 작은 순간에 대해 이야기하고 있습니다.

응용 프로그램이 무엇인지 잘 모르겠지만 어쨌든 유용한 데이터를 얻으려면 더 많은 데이터를 저장하고 하나 이상의 버퍼 길이를 렌더링하는 것이 좋습니다. 예를 들어, 220Hz의 음표 A는 256 프레임 버퍼 내에 44.1K의 파형주기가 약간만있을 것입니다.

+0

다음과 같은 작업을 수행하려고합니다. http://www.youtube.com/watch?v=-oN96cucBr4 터치 할 때 소리가 들리기 시작하고 터치 이벤트가 발생하면 세션이 중지되어야합니다. 화면에 "탭"주파수를 기록하고 표시합니다. – Roskvist

+0

그래, 그렇게하려면 버퍼의 가치 이상의 데이터가 필요합니다. AudioUnitRender를 호출하는 일반적인 시스템을 사용하지 않아도 응용 프로그램의 버퍼를 채울 수있는 실질적인 이유가 있어서는 안됩니다. –

+0

오케이 .. 대답 해줘서 고마워. 버퍼 저장과 관련하여 제안 사항이 있습니까? 나는 현재 memcpy를 조사 중이다. – Roskvist