안드로이드, iOS의 경우 녹음기능이 제공됩니다. 화면 녹화는 플렛폼에서 제공하는 전용 API를 사용할 수 있습니다. 녹음은 크게 다음과 같은 단계로 진행됩니다.
녹음 형식 설정
원본 소리 저장 (dump)
인코딩 (unpack)
녹음 기능의 특성상 원본을 로컬 저장소에 저장하게 되며 일정부분 저장소 용량을 차지하게 됩니다. 모든 저장이 완료 되면, 이를 압축하는 인코딩 과정이 필요하며, 이때는 CPU자원을 소모하게됩니다. 기기에 따라 하드웨어 가속등을 받지 못할 수도 있으며 클라이언트 자원을 소모함으로 필요한 경우에만 사용될 것을 권장합니다.
WebSDK의 경우 현재 녹음만을 지원합니다. 다음과 같이 config에 record관련 속성을 추가합니다.
config = {credential, view,
media: { audio:true, video:true,
record: true,
recordUrl: "https://blahblah.com/record/url"
// recordUrl이 없을 경우 기본 리몬서버로 전송됨
// recordUrl이 'local'인 경우 녹음만 하고 전송하지 않음.
}
}
record 속성은 record를 enable하는 속성입니다. 만약 record만 true로 할경우 remotemonster의 별도의 서버에 녹음파일이 저장됩니다. recordUrl을 설정하면 당신이 원하는 서버로 녹음파일이 전달됩니다. SDK에서는 녹음 과정에 대하여 다음과 같은 이벤트를 제공합니다. 녹음파일은 webm 형식으로 전달됩니다.
remon.onRecordEvent(event) {
switch(event.event){
case "stop: // 녹음이 종료되었을 때 발생합니다.
console.log(event.id, event.size, event.file);
break;
case "upload": // 녹음 후 recordUrl로 전송이 시작할 때 발생합니다.
console.log(event.id, event.size);
break;
case "progress": // 전송 중 파일이 큰 경우 업로드 도중에 호출될 수 있습니다.
console.log(event.id, event.size);
break;
case "uploaded":// 전송이 완료되었을 때 발생합니다.
console.log(event.id, event.size);
break;
case "error": //전송중 에러가 발생한 경우 발생합니다.
console.log(event.id, event.size, error);
break;
}
}
}
Remon SDK는 녹음만 지원됩니다. 영상의 녹화는 안드로이드의 Mediaprojection API를 사용하시면 됩니다. 녹음기능은 다음과 같이 사용 하시면 됩니다.