asyncfunctiongetRemoteFile(file) { let url = newURL(`/some-api`, host); let filePath = path.join(__dirname, '暂存路径'); let writeStream = fs.createWriteStream(filePath); let stream = awaitsendGetRequest(url.toString());
var leftchannel = []; var rightchannel = []; var recorder = null; var recording = false; var recordingLength = 0; var volume = null; var audioInput = null; var sampleRate = null; var audioContext = null; var context = null; var outputElement = document.getElementById('output'); // 用于提示当前录音状态
if (navigator.getUserMedia) { navigator.getUserMedia({ audio: true }, success, function (e) { alert('Error capturing audio.'); }); } else { alert('getUserMedia not supported in this browser.'); };
functioninterleave(leftChannel, rightChannel) { var length = leftChannel.length + rightChannel.length; var result = newFloat32Array(length);
var inputIndex = 0;
for (var index = 0; index < length;) { result[index++] = leftChannel[inputIndex]; result[index++] = rightChannel[inputIndex]; inputIndex++; } return result; }
functionmergeBuffers(channelBuffer, recordingLength) { var result = newFloat32Array(recordingLength); var offset = 0; var lng = channelBuffer.length; for (var i = 0; i < lng; i++) { var buffer = channelBuffer[i]; result.set(buffer, offset); offset += buffer.length; } return result; }
functionwriteUTFBytes(view, offset, string) { var lng = string.length; for (var i = 0; i < lng; i++) { view.setUint8(offset + i, string.charCodeAt(i)); } }
var bufferSize = 2048; recorder = context.createScriptProcessor(bufferSize, 2, 2);
recorder.onaudioprocess = function (e) { if (!recording) return; var left = e.inputBuffer.getChannelData(0); var right = e.inputBuffer.getChannelData(1); leftchannel.push(newFloat32Array(left)); rightchannel.push(newFloat32Array(right)); recordingLength += bufferSize; console.log('recording...'); combineAudio([newFloat32Array(left)], [newFloat32Array(right)], bufferSize, sampleRate); }
var lng = interleaved.length; var volume = 1; for (var i = 0; i < lng; i++) { view.setInt16(index, interleaved[i] * (0x7FFF * volume), true); index += 2; }
这一年一直坚持下来的就是日语的学习了,受影视音乐文化的影响,也保持着高涨的热情。虽然进步缓慢,但督促自己能够坚持下去。年底接手了与音视频相关的项目,接触不少新知识,C/C++的学习也提上了日程(虽然被《C++ Primer Plus》的厚度吓到劝退)。希望在新的一年里,珍惜时间,努力学习,想要放弃的时候,想想为什么要开始。