Javascript音频(可能是网络音频)设置的确切时间

时间:2015-08-23 05:07:09

标签: javascript audio web-audio

我有两首歌,我需要在同一时间播放(在AudioBuffer的索引下面,我通过除以采样率转换为秒),问题是,执行{{1}并且song1.play();需要大约200毫秒(使用song2.play();)来执行,这会抛出时间 - 无论如何使用缓冲区或某些JS魔法同时完全播放它们?

2 个答案:

答案 0 :(得分:1)

使用网络音频,您可以指定AudioBufferSources的开始时间:

https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start

答案 1 :(得分:0)

我做了一个简单的页面并进行了测试。

<html>
<head>
<meta charset="utf-8" />
</head>
<body>

<audio id="player1" controls style="width: 400px;">
<source type="audio/mpeg" src="http://127.0.0.1:8080/1.mp3"></source>
</audio>

<audio id="player2" controls style="width: 400px;">
<source type="audio/mpeg" src="http://127.0.0.1:8080/1.mp3"></source>
</audio>

<script>
    var plyr1 = document.getElementById('player1');
    var plyr2 = document.getElementById('player2');
</script>
</body>
</html>

我将plyr1.play(); plyr2.play();放入控制台(firefox)并点击回车。这些声音没有区别!我不知道你的问题是什么,但是你可以尝试plyr1.autoplay = true; plyr2.autoplay = true;,这不是一个功能,因为经验说应该花费更少的时间;)
啊哈,如果您使用new Audio(),则应注意使用new关键字会导致javascript变慢。避免它,而是使用document.createElement('audio')