RecorderJについていくつか読んでいるうちに、可能であればスピーカーに音を出さずに音を録音することができますか?私は誰でも可能ですか?なぜなら私はRecorderjs
リポジトリで何か似たようなものを見ないからです。レコーダーは、スピーカーで音を出さずにファイルのレコードを処理することができますか?
0
A
答えて
2
本当にrecorder.jsを使用したい場合、私はstreamNode.stream
から入手できるMediaStreamで直接フィードする方法があると思います。
すぐにこのlibのsource codeを読んで、AudioContextのソースノードだけを受け入れ、直接ストリームではないようです。とにかくline 38ののレコーダー.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();
}