我正在使用Web Audio API为我的大学工作构建一个HTML和JavaScript的mp3播放器。该项目在此处托管:http://proto.atech.tufts.edu/mixer/player.html
一切似乎都在Firefox和Chrome中完美运行,但Safari有一些重大问题。请随时在你的计算机上试一试,看看我在说什么,但要点就是:我在Safari中听到了声音(由于使用的是SteroPanner而不是Panner,因此之前没有发生过声音节点),然而与其他两个浏览器相比,回放看起来相当粗制滥造。此外,没有一个音轨不能正常静音,使用上滑块跟踪歌曲非常混乱。我觉得这很混乱,因为静音功能完全基于HTML元素,并没有实际使用Web Audio API。我的一个想法是首先将音频上传到缓冲区,而不是从HTML5音频元素中获取它,这已由许多教程提出。我觉得这可能解决了不良的音频播放质量问题,但我不相信这会对静音问题有所帮助。
这是我的github回购:https://github.com/agolin95/tts-mp3-mixer/tree/master
有没有其他人遇到过这样的奇怪问题,或者有什么想法可能会遗漏?任何帮助都会非常感激!
答案 0 :(得分:0)
对于静音/音量,将GainNode附加到您的源并使用它而不是HTMLMediaElement的api:
var gainNode = context.createGain();
source.connect(gainNode);
gainNode.gain.value = 1; // full volume
gainNode.gain.value = 0; // muted
而且,是的,将声音文件作为缓冲区加载将在浏览器中更可靠地工作,尽管这意味着要编写更多代码来控制音频播放。 You can see a basic example of play/pause/currentTime here