2016-07-04 7 views
4

나는 웹 오디오 API 기반 신호 처리 응용 프로그램을 가지고 있으며 AudioKit (EZAudio 기반) 프레임 워크가있는 iOS로 포트해야합니다.iOS AudioKit/EZAudio FFT 값

웹 오디오 API에서 0-255 사이의 숫자를 포함하는 FrequencyDomain 만 필요합니다.

그러나 AudioKit에 AKFFTTap fftData 6 -6 사이의 수레 때로는 여기에 1000

<는 이미 iOS에서 시도한 것입니다 날 다시 제공 :

init 프로세스를 ...

let mic = AKMicrophone() 
let fftTap = AKFFTTap.init(mic) 

요청 ... 웹 통화 AUD에

return fftTap.fftData 

입출력 API : 초기화 ...

var analyser = audioContext.createAnalyser(); 

요청 ...

let freqDomain = new Uint8Array(analyser.frequencyBinCount); 
analyser.getByteFrequencyData(freqDomain); 
return freqDomain 

가 어떻게 다시 같은 데이터를 얻을 수 있나요?

답변

3

웹 시나리오에서 AKFFTap과 다른 두 가지 사항이 있습니다. 먼저 256 크기의 배열을 반환합니다. 이는 catch 된 bufferSize가 512 샘플임을 의미합니다. 당신이 사용자 정의 AKFFTTap를 사용하여이 문제를 해결 할 수 있습니다

https://gist.github.com/denisb411/3e832a592ff8b79cca2afdbed432a0d0

둘째는 웹 오디오는 샘플의 바이너리를 읽는 방식이 다른 것 같다. AudioKit에서이 형식을 사용하므로 웹에서 Float32를 사용하는 것이 좋습니다. 자세한 내용은 this을 참조하십시오.