2013-02-01 3 views
33

node.js로 작업 중이며 node.js 서버로 오디오를 스트리밍했습니다. 는 지금은 오디오 덩어리를 구축하는 과정에서 발견 : 나는 새로운 물방울에서 ReferenceError가를 얻을Node.js는 Blob을 만들 수 없습니까?

var audioBlob = new Blob([dataview], { type: 'audio/wav' }); 

. Blob이 지원되지 않는 것 같습니다. node.js fs 모듈로 저장하고 싶은 블롭을 어떻게 만들 수 있습니까?

고마워요!

+2

입니까? 그거 어디서 났어? – Pete

+0

http://en.wikipedia.org/wiki/Binary_large_object – zer02

+0

일반적인 브라우저에서 모두 지원 https://developer.mozilla.org/de/docs/DOM/Blob – zer02

답변

12

이 문제의 해결 방법은 배열 버퍼와 노드 버퍼간에 변환 할 수있는 함수를 만드는 것입니다. :)

Convert a binary NodeJS Buffer to JavaScript ArrayBuffer

최근 노드 버전에서는 그것은 단지 : 물방울 무엇

let buffer = Buffer.from(arraybuffer); 
let arraybuffer = Uint8Array.from(buffer).buffer; 
+0

제대로 작동 했습니까? 오디오를 파일에 녹음 할 수는 있지만 적절한 시간이 있더라도 오디오를들을 수 없습니다. – Gabriel

+0

네, 효과가있었습니다. – zer02

+0

도와 주실 수 있습니까? 요점에 대해 이렇게 했니? https : //gist.github.com/anonymous/11302966 – Gabriel

0

제안으로,이 부분을 읽어보십시오 : http://howtonode.org/really-simple-file-uploads

을 나는 당신이 뭘하려고하는지 모르겠 추측을 의미한다. 모양에 대한 모듈이되지 않을 수도 있습니다,하지만 당신은 그냥 디스크에 뭔가를 작성하려는 경우,이 ..이 코드를 직접 작동하지 않습니다 FS 모듈,하지만 ...

var fs = require('fs') 
    , express = require('express') 

app.post('/upload', function (req, res) { 
    // asynch call to write file to disk 
    fs.write("/tmp/file.mp3", req.params.body, function (err) { 
    if (err) console.log(err) 
    }); 
    res.end(); 
}); 

단순히 mp3 파일을 게시하거나 정말로/업로드 할 수있는 모든 것, 그리고 그것을 디스크에 씁니다. 원하는 모든 유효성 검사를 수행 할 수 있습니다.

+0

안녕하세요, GetUserMedia Audio의 오디오 버퍼를 node.js 서버로 스트리밍하고 WAV로 배열을 인코딩하려고합니다. – zer02

+0

https://github.com/mattdiamond/Recorderjs – sent1nel

+0

나는 recorder.js를 사용했습니다. 나는 그것을 확장했다. 문제는 Blob을 클라이언트 측이 아닌 서버 측에 생성하는 것입니다. 노드 내부에 얼룩을 만드는 방법이 있는지 알아야합니다.js, 내가 직접 node.js에 오디오를 스트리밍하고 서버에 wav/mp3 파일을 만들고 싶습니다. :-) – zer02

관련 문제