angularjs - 在 Node js 中连接两个音频文件

标签 angularjs node.js audio

我正在开发一个网页,用户将在其中选择两个音频文件,应用程序将连接这两个音频文件并将其作为单个输出音频文件。我在后端使用nodejs,在客户端使用angularjs。我怎样才能达到这个要求?我浏览了很多图书馆,但没有一个适合它。

最佳答案

我目前正在研究类似的用例。这些库不是很好,因为大多数库都需要在服务器环境中安装一个大程序。例子是:

  • sox-audio :只要您不需要迭代(可变数量的文件)串联,这应该没问题。但这需要安装 SoX .
  • audio-concat : ffmpeg 的包装,但还需要安装ffmpeg。

或者您不需要输出音频可搜索,您可以简单地使用流来实现。概念:

var fs = require('fs')
var writeStream = fs.createWriteStream('outputAudio.mp3'); // Or whatever you want to call it    

// Input files should be an array of the paths to the audio files you want to stitch
recursiveStreamWriter(inputFiles) {
    if(inputFiles.length == 0) {
        console.log('Done!')
        return;
    }

    let nextFile = inputFiles.shift(); 
    var readStream = fs.createReadStream(nextFile);

    readStream.pipe(writeStream, {end: false});
    readStream.on('end', () => {
        console.log('Finished streaming an audio file');
        recursiveStreamWriter(inputFiles);
    });
}

这有效并且过渡很好,但是音频播放器很难寻找音频。可以找到一个不错的完整示例 here递归流方法。

关于angularjs - 在 Node js 中连接两个音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31284738/

相关文章:

javascript - 如何清除点击时出现的 Angular 应用程序中的表单?

javascript - 尝试在 AngularJS 的 Controller 之间传递数据

javascript - Node js - Push() 函数无法与引用和 mongodb 一起正常工作

java - 音频输入流不工作

flash - 如何在 Actionscript 3 中播放与 SWF 文件不在同一目录中的声音?

javascript - 如何使用 contenteditable 属性避免在内联编辑中复制 HTML 和 CSS 内容

angularjs - 防止按 Enter 键提交表单

node.js - 如何模拟 irc 服务器断开连接来测试我的 nodejs irc 机器人?

javascript - 如何使用 Node.js 将 http 请求中的图像显示到外部 API

javascript - html5 加载音频时间/元数据但不加载音频?