javascript - 如何在 JavaScript 中一次多次播放同一个音频文件
问题描述
我正在尝试制作基于音乐的基于 JavaScript 的游戏。我正在尝试在播放器移动时播放一些声音,但如果前一个音频文件尚未完成,它最终会切断第一个文件或不播放第二个文件。我正在使用 audio.play() 方法。
notes.C2 = new Audio();
notes.C2.src = 'piano/C2.wav';
notes.D2 = new Audio();
notes.D2.src = 'piano/D2.wav';
if (l1.cats.x == 0) {
notes.C2.play();
}
if (l1.cats.x == 1) {
notes.D2.play();
}
编辑:我也不熟悉 API 和其他东西,所以如果可能的话,我不想使用它们。编辑 2:我刚刚意识到问题是同一个音频文件不能自己播放。
解决方案
试试这个东西
var audio1 = new Audio();
var src1 = document.createElement("source");
src1.type = "audio/mpeg";
src1.src = "audio/Dombra.mp3";
audio1.appendChild(src1);
var audio2 = new Audio();
var src2 = document.createElement("source");
src2.type = "audio/mpeg";
src2.src = "audio/(TESBIHAT).mp3";
audio2.appendChild(src2);
audio1.play(); audio2.play();
它适用于 chrome 和 firefox。
推荐阅读
- python - 应用过滤器后在 PyQt5 GUI 中裁剪图像
- c# - .net 5.0 不支持 LINQ to SQL?
- powershell - 我正在尝试使用 -Command 选项执行一个包含 powershell 脚本的小字符串,但它没有被执行?如何解决这个问题?
- node.js - 我们要添加折扣码可以在 GetHotelAVail 和 GetHotelDetails 中使用
- asp.net - 404错误:尝试在docker内部部署ocelot网关调用微服务
- java - 为什么Java编译器11使用invokevirtual调用私有方法?
- angular - 在 Angular 11 中使用 Swiper JS 创建响应式幻灯片
- r - 使用 TinyTex 在 R Studio 中将 ..Rmd 编译为 pdf 时出现错误消息
- sqlalchemy - sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]用户登录失败
- javascript - 从 HTML 页面访问 JS 模块