media.onVoiceRecordComplete - GiGAGenie-ServiceSDK/UserGuide GitHub Wiki
gigagenie.media.onVoiceRecordComplete
API 설명
- 음성 녹음 수신 API
- 음성 녹음 API 에 의한 녹음 결과를 받는 Event Callback
- 음성 녹음 API에서 delivery를 memory로 설정했을 경우 콜백에 AudioBuffer Javascript Object가 전달됨
- delivery를 webhook으로 설정했을 경우 http post request를 실행 전 녹음이 완료 되었음을 알려줌
- Webhook의 경우 http post request 도중에 발생된 에러는 전달하지 않음
API 구조
- function callback(result_cd, buffer)
result_cd
200
: 레코딩 성공
500
: 시스템 에러
503
: 취소됨
buffer
: 녹음된 PCM 파일(wav 포맷)을 AudioBuffer JavaScript Object로 전달(webhook 방식의 경우 null)
사용 예시
1. delivery를 memory로 설정한 경우
var options = {};
options.delivery = 'memory';
options.recordTime = 10;
var audioBuffer = null;
gigagenie.media.onVoiceRecordComplete = function (result_cd, inBuffer) {
if (result_cd === 200) {
console.log('recording success');
audioBuffer = inBuffer;
} else console.log('recording fail:' + result_cd)
}
gigagenie.media.startRecordAudio(options, function (result_cd, result_msg, extra) {
console.log(result_cd);
});
//AudioBuffer로 웹에서 재생하고자 하는 경우
var source = context.createBufferSource();
source.buffer = audioBuffer;
source.connect(context.destination);
source.start(0);
2. delivery를 webhook으로 설정한 경우
var options = {};
options.delivery = 'webhook';
options.recordTime = 10;
options.url = "https://yourhosstname/path"
gigagenie.media.onVoiceRecordComplete = function (result_cd, inBuffer) {
if (result_cd === 200) {
console.log('recording success');
//웹서버에서 확인하는 코드?
} else console.log('recording fail:' + result_cd)
}
gigagenie.media.startRecordAudio(options, function (result_cd, result_msg, extra) {
console.log(result_cd);
});
//post 한 파일을 플레이하고자 하는 경우
var audioBuffer = null;
function loadSoundFromUrl(url) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
request.onload = function () {
context.decodeAudioData(request.response, function (buffer) {
audioBuffer = buffer;
}, function () {
console.log('error');
});
}
request.send();
}
loadSoundFromUrl("https://yourhosstname/path");
var source = context.createBufferSource();
source.buffer = audioBuffer;
source.connect(context.destination)
source.start(0);