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);