javascript - html5 音频流可以与当前设备时间 100% 同步吗

标签 javascript html html5-audio

我想知道 HTML5 音频流是否可以与设备当前时间 super 准确地同步。 就像我在设备时间 01:00 有一个 10 分钟的音频文件,音频从 00:00 开始,在 01:05 音频在 05:00 播放并在 01:10 结束。我的意思是,当我单击“播放 HTML5 音频播放器”时,它会根据当前设备时间播放音频。

这是我尝试过的,但音频总是有点落后于时间(以毫秒为单位)。

 var player = document.getElementById('music'); 
player.addEventListener('play', function() { 
            var main_date = new Date();
            var hour = main_date.getUTCHours();
            var minutes = main_date.getUTCMinutes();
            var seconds = main_date.getUTCSeconds();

            var current_second = ( hour * 60 * 60 ) + ( minutes * 60 ) + seconds;
            var audio_start =  current_second%player.duration ;
            player.currentTime = parseInt(audio_start);
        }, false);
        
        player.addEventListener('timeupdate', updateProgressBar, false);
         
        function updateProgressBar() {
            var percentage = Math.floor((100 / player.duration) * player.currentTime);
 
            var di = document.getElementById('datetime');
            di.innerHTML = new Date() ;
        }
        
<div id="datetime"></div>
<audio controls id="music">
<source src="http://www.easel.ca/wp-content/uploads/2018/03/ClAudioSync-599_99seconds_128kbps.mp3">
<audio>
   

最佳答案

最好的选择是使用 Web Audio API。

通过使用 WAA,您通常会首先将整个样本加载到内存中,然后使用 currentTimeAudioContext 上到 schedule例子。使用偏移参数来确定样本中的起点。

关于javascript - html5 音频流可以与当前设备时间 100% 同步吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49081767/

相关文章:

javascript - 淡入淡出 HTML5 音频逻辑

javascript - 为基于鼠标事件的动态div创建一个类

java - 如何使用 JavaScript 单击 Selenium WebDriver 中的元素?

javascript - 另一个文件夹中的 Node_modules

javascript - Aurelia 仅用于客户端(前端)数据绑定(bind)

javascript - 如何在数据库中为特定用户保存动态 html 代码

html - 使用 Visual Studio Code 在 HTML 文件中启用 ES6

html - 为什么我的元素上的 position static 没有相对于父 div 定位?

html5-audio - 修改 HTML5 音频中特定 channel 的音量

python - HTML 5 中的实时音频源