[英]Convert a BLOB file (a music file) to .WAV in NODE.js (server-side)
我正在努力解決一個看似簡單的概念。
我有一個節點服務器,它可以正確接收POST請求。 我正在向其發布Blob(將Blob轉換為.wav文件)。
我需要怎么做才能將該Blob作為.wav文件保存到磁盤? 我正在使用音樂播放器播放用戶上傳的音樂文件,然后播放該歌曲。
您沒有提供太多信息,但是您正在使用Express嗎? 以及您要存儲在哪個數據庫上。
您可能要
var express = require('express');
var bodyParser = require('body-parser');
var sqlite3 = require("sqlite3").verbose();
var cors = require('cors');
var db = new sqlite3.Database("db/database.db");
var app = express();
app.use(cors());
app.use(bodyParser.json({ extended: false }));
app.use(express.static('public'));
function toArrayBuffer(buffer) {
var ab = new ArrayBuffer(buffer.length);
var view = new Uint8Array(ab);
for (var i = 0; i < buffer.length; ++i) {
view[i] = buffer[i];
}
return ab;
}
app.post("/blobs" function(req, res){
console.log(req.body);
//You should hopefully have your blob show up...
toArray(blob);
db.run("INSERT INTO pics (name, blob) VALUES (?, ?)",___nameOfBlob(hopefully from req.body as well if you have a form___, __bufferBase64__, function(err){
if(err) console.log(err);
});
});
如果仍然無法正常工作,請給我們提供更多詳細信息...如果您想轉換為.wav,請查看以下內容:
function encodeWAV(samples) {
var buffer = new ArrayBuffer(44 + samples.length * 2);
var view = new DataView(buffer);
writeString(view, 0, 'RIFF');
view.setUint32(4, 32 + samples.length * 2, true);
writeString(view, 8, 'WAVE');
writeString(view, 12, 'fmt ');
view.setUint32(16, 16, true);
view.setUint16(20, 1, true);
view.setUint16(22, 2, true);
view.setUint32(24, sampleRate, true);
view.setUint32(28, sampleRate * 4, true);
view.setUint16(32, 4, true);
view.setUint16(34, 16, true);
writeString(view, 36, 'data');
view.setUint32(40, samples.length * 2, true);
floatTo16BitPCM(view, 44, samples);
return view;
}
function exportWAV(type) {
var bufferL = mergeBuffers(recBuffersL, recLength);
var bufferR = mergeBuffers(recBuffersR, recLength);
var interleaved = interleave(bufferL, bufferR);
var dataview = encodeWAV(interleaved);
var audioBlob = new Blob([dataview], {
type: type
});
this.postMessage(audioBlob);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.