Uso Flash per registrare e caricare l'audio su un server nodo. Il client Flash è una variazione di jrecorder. Quando l'utente ha terminato di registrare, l'audio viene caricato utilizzando una richiesta POST (non un modulo perché Flash non può creare file) con l'audio ByteArray come i dati della richiesta POST (vedere più here).Caricamento file binario su Node.js
Sono in grado di ricevere il file correttamente su Node-land utilizzando il codice riportato di seguito ma l'audio che viene fuori viene alterato e non si sente nulla. Detto questo, il contenuto del file può essere riprodotto da VLC e altri lettori + Sox è in grado di codificarlo come un mp3.
Ecco il mio codice quando si utilizza Node:
var express = require('express');
var app = express();
app.use (function(req, res, next) {
req.rawBody = '';
req.setEncoding('utf8');
if(req.method.toLowerCase() == "post")
{
req.on('data', function(chunk) { req.rawBody += chunk });
req.on('end', function() { done(req, res); });
}
next();
});
function done(req, res)
{
fs.writeFile('abc.wav', req.rawBody, 'binary', function(err){
if (err) throw err;
// Save file to S3
}
}
Ora, se io uso lo stesso client Flash e fare la richiesta POST a un server Rails e utilizzare il codice qui sotto, il file viene salvato perfettamente.
def record
file = request.raw_post
# Save file to S3
end
Nota che io non sono un esperto di nodo quindi per favore se avete qualche suggerimento su quello che dovrei usare invece di salvare i pezzi si prega di inviare esempi di codice. Il mio obiettivo principale in questo momento è quello di ottenere questo a uno stato funzionante prima di esplorare altro modo di realizzare in modo più efficiente nel Nodo (tamponi, corsi d'acqua, ecc)
Caro signore si è IMPRESSIONANTE! Ha funzionato, grazie! Non posso credere di aver perso quella linea. Era una delle tante iterazioni che ho provato oggi. Grazie ancora! –
Grazie per l'ottima risposta! Ho avuto così tanti problemi con questo e non capisco come questo non possa essere implementato di default da espresso, ma nvm. Grazie! –
l'uomo che lavora per me – cloverink