저는 cordova-plugin-audioinput의 제작자입니다. 마이크의 원시 오디오 데이터에 액세스 할 수 있도록 해주는 Cordova 플러그인입니다. PitchDetect 라이브러리를 수정하지 않으면 audioinput 플러그인과 함께 사용할 수 없습니다. PitchDetect 라이브러리는 이전 Android 웹 뷰 (< 5.0)에서 지원되지 않는 getUserMedia API를 사용하며 iOS 웹 뷰에서는 지원되지 않습니다. 반면에 cordova-plugin-audioinput은 iOS 및 이전 Android 웹뷰에서 마이크 액세스를 가능하게하기 위해 특별히 제작되었습니다. 안드로이드에 특정 문제를 해결할 수
빠른 방법 :
인텔 XDK는 블링크의 최신 버전 (오픈 소스 버전을 사용할 수있는 횡단 보도의 웹보기, 안드로이드 애플 리케이션을 구축 지원 Chrome은 웹 오디오 API와 getUserMedia API를 모두 지원합니다.
, 당신의 빌드에 횡단 보도를 가능하게하는 인텔 XDK의
빌드 설정에 안드로이드에 대한 화면을 이동하고
는 "횡단 보도에 최적화"고 확인란이 선택되어 있는지 확인합니다. Intel XDK와 함께 Crosswalk를 사용하는 방법에 대한 자세한 내용은
https://software.intel.com/en-us/xdk/blog/what-is-crosswalk을 참조하십시오.
나는 앱이 또한 마이크에 액세스 할 수있는 권한이 필요하기 때문에 인텔 XDK 빌드 구성의 "권한을 추가" 필드에 "android.permission.RECORD_AUDIO"를 입력 할 것이라고 믿는다. 당신은, 다른 한편으로는, PitchDetect 라이브러리와 함께 코르도바 - 플러그인 - audioinput를 사용하려면 PitchDetect
과 함께 코르도바 - 플러그인 - audioinput를 사용
는
(예를 들어, 당신은 당신의 응용 프로그램을 원하는 경우 getUserMedia API를 지원하지 않는 iOS에서도 작동합니다.) 일부 수정을해야합니다. 특히, 당신은에서 getUserMedia에 의존하지 않도록 PitchDetect의 toggleLiveInput 기능을 변경해야하지만, 대신에 시작 (정지)를 audioinput 플러그인을하고 PitchDetect 분석기에 audioinput 플러그인을 연결 :
audioinput.start({
streamToWebAudio: true,
audioContext: audioContext // To ensure that the audioinput plugin uses the same audioContext as the PitchDetect library
});
analyser = audioContext.createAnalyser();
analyser.fftSize = 2048;
audioinput.connect(analyser);
updatePitch();
위의 예는 이전 Android 버전에서 제한적으로 지원되는 Web Audio API에 의존합니다. Android 5 이상은 잘 작동합니다. 여러 브라우저에서 웹 오디오 API 지원에 대한 자세한 내용은 http://caniuse.com/#feat=audio-api을 참조하십시오.
나는 이것이 도움이되고 행운이 있기를 바랍니다.
안녕하세요. 도와 주셔서 감사합니다. 나는 정확히 당신이 말한 것을했습니다 (위 코드를 복사했습니다). 그러나 autoCorrelate 함수는 항상 -1을 반환하는 것으로 나타났습니다. "if (rms <0.01)가 -1을 반환하기 때문에 -1을 반환합니다." (그것은 "// 신호가 충분하지 않습니다."라고 주석을 달았습니다. 뭔가 잘못되었다고 생각합니다. 도와 주실 수 있습니까? 왜 이런 일이 일어나고 있습니까? – DigitalEvolution