RecorderJs에 대해 읽는 동안 스피커에 소리를 내지 않고 소리를 녹음 할 수 있는지 스스로 물어 봅니다. 모두 배경에 있고, 누군가 가능합니다. 왜냐하면 나는 Recorderjs
저장소에서 비슷한 것을 보지 못하기 때문이다.RecorderJs는 스피커에서 사운드를 방출하지 않고 파일 레코드를 처리 할 수 있습니까?
0
A
답변
2
정말로 recorder.js를 사용하고 싶다면 입니다. streamNode.stream
에서 얻을 수있는 MediaStream으로 직접 피드하는 방법이 있습니다.
이 lib의 source code을 빨리 읽는다면 AudioContext 소스 노드 만 받아 들일 수 있습니다. 어쨌든 line 38recorder.js 파일을 주석 처리해야합니다. 저자
그리고 실제로 그것이에서
this.node.connect(this.context.destination); //this should not be necessary
코멘트. latests 브라우저에서 사용할 수있는 공식 MediaRecorder API를 사용하여, (가 OGG 대신 WAV로 저장됩니다 것을 제외)
그렇지 않으면, 당신은 또한 그것을 바닐라 스타일을 달성 할 수있다.
주 키는 MediaStreamDestination이며 AudioContext의 destination
에 연결할 필요가 없습니다.
var audio = new Audio();
audio.crossOrigin = 'anonymous';
audio.src = 'https://dl.dropboxusercontent.com/s/agepbh2agnduknz/camera.mp3';
audio.onloadedmetadata = startRecording;
var aCtx = new AudioContext();
var sourceNode = aCtx.createMediaElementSource(audio);
var streamNode = aCtx.createMediaStreamDestination();
sourceNode.connect(streamNode);
function startRecording() {
var recorder = new MediaRecorder(streamNode.stream),
chunks = [];
recorder.ondataavailable = function(e) {
chunks.push(e.data);
}
recorder.onstop = function() {
var blob = new Blob(chunks);
var url = URL.createObjectURL(blob);
var a = new Audio(url);
a.controls = true;
document.body.appendChild(a);
}
audio.onended = function() {
recorder.stop();
};
audio.play();
recorder.start();
}