如何将两个音频文件合并为一个并在javascript中合并后播放
Posted
技术标签:
【中文标题】如何将两个音频文件合并为一个并在javascript中合并后播放【英文标题】:How to merge two audio files into one and make it play after merge in javascript 【发布时间】:2020-05-05 12:17:29 【问题描述】:我有一个要添加到背景中的曲目和一个录制的音频。我想合并两个音频并使其成为一个,而不是播放合并的音频。谁能帮我解决如何合并音频而不是播放它。
【问题讨论】:
***.com/questions/31833168/merge-audio-files-node-js 【参考方案1】:您不能在客户端合并文件。如果你只想一起玩,你可以一起玩。
<audio id="myAud">
<source src="sounds/1.mp3" type="audio/mpeg">
</audio>
<audio id="myAud2">
<source src="sounds/2.mp3" type="audio/mpeg">
</audio>
<script>
var audio1 = document.getElementById("myAud");
var audio2 = document.getElementById("myAud2");
audio1.play();
audio2.play();
</script>
或者如果你选择一个接一个地玩:
<script>
var audio1 = document.getElementById("myAud");
var audio2 = document.getElementById("myAud2");
audio1.play();
audio1.addEventListener('ended', function()
// first one complete play next..
audio2.play();
,false);
</script>
【讨论】:
感谢@jawadkhan 的回复,您确定合并不能实现客户端吗?因为我目前正在从事该项目,其中 android 和 ios 应用程序已经这样做了,现在我需要在 web (vue.js) 中实现它。 是的,处理需要在服务器端完成。但是,您可以在不重新加载页面的情况下实现这一点,例如通过 ajax 向服务器发送请求。您可以探索 FFMPEG 库。您需要将它安装在您的服务器上。还要检查这个答案:***.com/questions/32043251/…【参考方案2】:如果你经常把这两个文件一起玩,建议你用ffmpeg合并一下。否则为什么不播放第一个文件并在这个文件的末尾播放另一个 (How to detect an audio has finished playing in a web page?)?
【讨论】:
我可以在客户端合并它们吗?如果是的话,请尽可能给我看代码。我想同时播放两个音频 正如japadkhan 已经说过的,我这需要在服务器端完成。音频文件被编码并在一个容器内(就像一个包含元数据和音频数据的 mp3 容器)。合并这两个文件需要解析容器结构的工具,你不能确定这些工具是在客户端还是客户端浏览器支持。您说您已经有 iOS 和 android 应用程序这样做,它是与应用程序链接的库? FFmpeg 命令取决于使用的编解码器和其他,但您可以查看reddit.com/r/ffmpeg/comments/7kpqxa/merging_two_audio_files以上是关于如何将两个音频文件合并为一个并在javascript中合并后播放的主要内容,如果未能解决你的问题,请参考以下文章