繁体   English   中英

如何在IE11中沿着声波图像移动光标(垂直线)播放opus音频

[英]How to play an opus audio with cursor (vertical line) moving along the sound wave image in IE11

IE11 不支持播放 opus 音频文件。 这就是为什么我使用ogv.js javascript 库在 IE11 中播放它。 该库将音频数据流式传输到 IE11 的内部 Flash 播放器并播放它。 问题是在并行播放音频文件时,我必须用光标(垂直线)连续重绘整个图像以指示正在播放的音频的位置。 Javascript 是一种单线程脚本语言,所以我不能同时执行这两项任务。

我调用函数如下。

var chart = new Chart();

var player = new OGVPlayer({});

//在chrome和firefox中我使用var player = document.createElement('audio');

player.src = "test.opus";//duration of audio is 10 seconds

player.load();

redraw_chart(0, 100);

player.play();

功能重绘图表(位置,时间){

if(position <= time) {

    position++;

    setTimeout(function() {

       chart.redraw();

       redraw_chart(position, time);

    }, 100);
}

}

在 IE11 中,上面的代码每隔 10 秒重绘一次图表,持续 10 秒,然后播放音频文件。 但我想并行播放它们。

注意:在 Chrome 和 firefox 中,此代码工作正常,因为在两个浏览器中,我都使用音频控件来播放 opus 文件,而在音频控件播放音频文件时,其余 javascript 会并行重绘图表。

如果有人可以帮助我,我将不胜感激。

我们可以看到您想要执行 2 个并行任务。 使用 JS 是不可能的。

我建议你检查 Parallel.js

Parallel.js 是一个用于 Javascript 多核处理的小型库。 它的创建是为了充分利用不断成熟的 web-workers API。 毫无疑问,Javascript 速度很快,但由于其单线程计算模型而缺乏其对等语言的并行计算能力。

Parallel.js 通过使用 Web Worker 为您提供对多核处理的高级访问权限来解决该问题。 它在节点和浏览器中运行。

参考:

并行.js

您也可以尝试参考此链接以获取有关 Web Worker 的一些信息。

使用 Web Workers 在 JavaScript 中进行并行编程

您可以尝试使用上述 API 同时播放音频文件和绘制图表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM