在HTML中组合音频文件

时间:2012-11-09 09:42:31

标签: javascript html html5

我有一个 HTML页面,它有两个音频文件ABC.mp3为30秒,XYZ.mp3为15秒。我需要以这样的方式组合这两个文件:我得到一个30秒(而不是45秒)的新文件PQR.mp3,其中一个文件重叠/合并到另一个。 任何类型的插件,javascript等都会有所帮助,保持HTML和HTML5的正确性。

1 个答案:

答案 0 :(得分:1)

简单回答:不是.Javascript和HTML5都没有能力做到这一点。您将需要服务器端工具来执行此操作。例如,在MP3的情况下为ffmpeg和LAME。

如果您确实需要在HTML基础上进行此类操作,唯一的方法是将这些程序绑定到php脚本或NodeJS服务器,然后启动作业以执行您想要执行的操作。然而,您必须编写bash脚本或cronejobs才能这样做。

修改

对于nodeJS,您需要编写自己的节点服务器应用程序。然后,应用程序应该使用socketIOnode-fluent-ffmpg,它也有跛脚。该应用程序可能看起来像这样

服务器:

var io = require('socket.io').listen(80);
var exec = require('child_process').exec;
io.sockets.on('connection', function (socket) {
  socket.on('mergeFiles', function (data) {
    var firstFile = data.firstFile;
    var secondFile = data.secondFile;

    //do ffmpg stuff by executing a shell script
    execString = "./yourscript.sh " + firstFile + " " + secondFile

    function puts(error, stdout, stderr) { sys.puts(stdout) }
    exec(execString , puts);
});

客户端:

<script src="/socket.io/socket.io.js"></script>
<script>
  var firstFile = ABC.mp3;
  var secondFile = XYZ.mp3;

  var socket = io.connect('http://localhost');
  socket.emit('mergeFiles', { firstFile: firstFile, secondFile: secondFile });
</script>