如何在Javascript/Node中从blob编写.wav文件
How to write .wav file from blob in Javascript/Node
我试图用fs.writeFile写一个。wav文件。文件被成功创建,但是它只有8-13字节长,所以很明显我没有做对什么。
如果blob已经是音频/wav,我可以写入磁盘还是我需要将其转换为Base 64?
我在这里很茫然,我发现另一个类似的帖子没有答案-在这里
如有任何意见,不胜感激。
routerApp.controller('audiotest', function($scope) {
$scope.saveToDisk = function(){
var nw = require('nw.gui');
var fs = require('fs');
var path = require('path');
fs.writeFileSync('test.wav', $scope.recordedInput)
};
}
console.log($scope.recordedInput)
返回Blob {size: 294956, type: "audio/wav"}
<div class="row" ng-controller="audiotest">
<div class="row">
<button type="button" ng-click="saveToDisk()"> Write this sucker to disk </button>
</div>
<ng-audio-recorder id='audioInput' audio-model='recordedInput'>
<!-- Start controls, exposed via recorder-->
<div ng-if="recorder.isAvailable">
<button ng-click="recorder.startRecord()" type="button" ng-disabled="recorder.status.isRecording">
Start Record
</button>
<button ng-click="recorder.stopRecord()" type="button" ng-disabled="recorder.status.isRecording === false">
Stop Record
</button>
</ng-audio-recorder>
</div>
您可以将Blob转换为类型化数组,然后转换为直接传递给fs.writeFileSync()
的缓冲区:
var fileReader = new FileReader();
fileReader.onload = function() {
fs.writeFileSync('test.wav', Buffer.from(new Uint8Array(this.result)));
};
fileReader.readAsArrayBuffer($scope.recordedInput);
我有问题得到这两个为我工作。我发现了成功,并且使用这个节点模块express-fileupload更容易实现。下面是一些代码:
var express = require('express');
var fileUpload = require('express-fileupload');
app.use(fileUpload());
app.post('/', function(req, res) {
console.log(req.files.data);
req.files.data.mv('test.wav', function(err) {
if (err) {
console.log(err);
}
});
});
使用mscdex应答
这就是我使用NodeWebkit作为浏览器时的工作。
var fileReader = new FileReader();
fileReader.onload = function () {
fs.writeFileSync('test.wav', Buffer(new Uint8Array(this.result)));
};
fileReader.readAsArrayBuffer(blob);
注意Buffer的"from"方法消失了。在我的最后一行传递的"blob"是用wav编码的音频数据。
剩下的,就只有魔法了。别问我…
相关文章:
- 如何编写HTML输入的JS内联
- 如何编写一个具有公共标头的批处理
- 在Redux中,我应该在哪里编写复杂的异步流
- 用玉石编写书法和手写笔
- Javascript/Jquery Blob not showing Chrome PDF
- 为函数代码编写测试
- 如何提供在javascript中编写对对象的重复访问以设置元素样式的简写
- 用JavaScript编写数字猜测程序
- jQuery:用ToggleClass编写超级菜单
- 文档.编写方法问题
- 在CodeIgniter视图中将Javascript或jQuery代码作为PHP文件编写可以吗
- 这个javascript代码是如何编写的
- 使用blob作为src图像
- 使用PHP,我如何将JSON blob附加到现有的多级JSON对象
- 在node.js中编写单元测试的最佳方式是什么
- 我该如何编写一个CouchDB视图,列出每个存储文档的大小
- 通过键盘编写SVG文本
- 如何正确地在页面外编写DFP广告单元
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 如何在Javascript/Node中从blob编写.wav文件