【问题标题】:Write a wav file in Node.js from an AudioBuffer从 AudioBuffer 在 Node.js 中编写一个 wav 文件
【发布时间】:2017-10-07 18:12:34
【问题描述】:

我是 Node.js 编程的新手,我正在尝试将 m4a 文件转换为 wav 文件。

我使用了 audiobuffer-to-wav 和 web-audio-api。 这是我的代码:

const fs = require('fs');
const toWav = require('audiobuffer-to-wav');
const AudioContext = require('web-audio-api').AudioContext;
const audioContext = new AudioContext;

let resp = fs.readFileSync('sample.m4a');

audioContext.decodeAudioData(resp, buffer => {
  let wav = toWav(buffer);
  console.log(buffer.length);
  console.log(wav); 
});

我想知道如何将 wav 变量保存到 Node.js 中的文件中

【问题讨论】:

    标签: javascript node.js audiocontext


    【解决方案1】:
    const fs = require('fs');
    const toWav = require('audiobuffer-to-wav');
    const AudioContext = require('web-audio-api').AudioContext;
    const audioContext = new AudioContext;
     let resp = fs.readFileSync('sample.m4a');
    
    var audioStack = [];
    
    var header = require('waveheader');
    
    audioContext.decodeAudioData(resp, buffer => {
        let wav = toWav(buffer); 
        var chunk = new Uint8Array(wav);
        console.log(chunk); 
        fs.appendFile('bb.wav', new Buffer(chunk), function (err) {
        });
    
    });
    

    这是我的答案。谢谢卡拉马里科。

    【讨论】:

    • 您需要“waveheader”,但您似乎没有使用它向流中写入标头。我想你会想要跟踪流结束,然后将数据子块的大小也添加到标题中。
    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    相关资源
    最近更新 更多