现在,Mod Player可以公开使用任何人,而无需克隆存储库并手动包含任何JavaScript文件。要在您自己的网站中加入MOD播放器,您现在只需将以下行添加到HTML:
<script type="module">
import { ModPlayer } from 'https://atornblad.se/files/js-mod-player/player.js';
const audio = new AudioContext();
const player = new ModPlayer(audio);
await player.load(URL_OF_YOUR_MOD_FILE);
window.addEventListener('click', () => player.play());
</script>
内容安全策略和浏览器安全模型
如果您在网站中遇到了包括mod播放器的任何问题,则可能是由于内容安全策略(CSP)。一些网站使用严格的CSP,该CSP防止页面从其他域中加载JavaScript文件。如果您是网站的所有者,则可以添加以下HTTP标头以允许Mod Player加载:
Content-Security-Policy: script-src 'self' https://atornblad.se
如果您无法添加HTTP标头,则可以将以下行添加到HTML的head
:
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://atornblad.se">
我在使Mod Player可用时发现的另一件事是,浏览器安全模型可防止外部脚本创建AudioContext
。为了解决此问题,MOD播放器现在接受AudioContext作为构造函数的参数。这就是为什么上面的示例包括Line const audio = new AudioContext();
的原因。如果您获得了GitHub repository的克隆并将JavaScript文件复制到您自己的网站,则无需将AudioContext传递给构造函数。然后,Mod Player将创建自己的AudioContext。
但是,我强烈建议您通过从atornblad.se/files/js-mod-player/player.js
导入播放器,而不是将JavaScript文件复制到您自己的网站。这样,您将始终获得MOD Player的最新版本,并且您将不必担心浏览器安全模型或网站的内容安全策略。上面的示例是一个很好的起点,可以在atornblad.se/js-mod-player上找到ModPlayer
类的完整文档。
播放器应在任何现代浏览器上从任何网站上工作。作为一个小概念证明,我还为您创建了a pen。
您可以在atornblad.github.io/js-mod-player尝试此解决方案。
该代码的最新版本始终在the GitHub repository中可用。