JS 中的音频对象无法跨网站工作

问题描述 投票:0回答:1

我有一个音频元素,它与我的警报框一起播放,当某个操作发生时,警报框就会显示。我网站上的所有页面共享相同的 JS 文件,我的 JS 文件位于

assets/js/core.js
中,我的音频文件位于
assets/audio/error.mp3
中。音频似乎只在索引页面中播放,该页面位于我网站的根目录中。所有其他页面都在
/company/...
company/legal/...
等中。 (
...
代表目录中的文件。)我知道页面必须首先获取音频文件,并且每个页面的文件路径都会不同,因此JS必须指向多个目录。

这是我原来的JS代码,它只在索引文件中播放:

// Create an audio element
    let audio = new Audio("assets/audio/error.mp3");
    audio.play(); // Play the audio

还有一个我尝试在所有页面中播放音频的替代方案:

// Create an audio element
    let audio = new Audio("assets/audio/error.mp3", "../audio/error.mp3", "../../assets/audio/error.mp3");
    audio.play(); // Play the audio
javascript html audio
1个回答
0
投票

您需要指定音频文件的绝对 URL,以便它始终指向相同的唯一资源,从而在每个页面上正常工作,例如。 :

const url = window.location.hostname + '/assets/audio/error.mp3';
const audio = new Audio(url);
© www.soinside.com 2019 - 2024. All rights reserved.