我有以下HTML:
<audio autoplay id="background_audio">
<source src="https://sporedev.ro/pleiade/hol.mp3" type="audio/mpeg">
</audio>
<a href="#" id="mute">Play/mute sound</a>
以下JS:
var audio = document.getElementById('background_audio');
document.getElementById('mute').addEventListener('click', function (e)
{
e = e || window.event;
audio.muted = !audio.muted;
e.preventDefault();
}, false);
您可以在这里找到JSFiddle。
此脚本的作用是静音并继续播放具有background_audio
id的音频文件。
我已在project中成功实施了此解决方案。您可以通过单击带有齿轮的图标和可在菜单中找到的文本“Setari”(它位于最后一行的中间)来静音/播放声音。
如何修改脚本以设置cookie或创建会话,以便当用户将声音静音在一个页面上时,它也可以在其他页面上保持这种状态?
我在SO和Google上对JS进行了一些关于cookie的研究,但无法找到解决方案。
请注意,如果用户重新启用声音,则它应该会在每个页面上再次运行。
我认为我需要在点击“mute
”ID时创建Cookie。然后我需要验证cookie是否已设置,如果已设置,则将存储在cookie中的值分配给audio.muted。如果没有设置cookie,那么它应该播放声音(说起来容易做起来难)。
答案 0 :(得分:1)
单击该按钮时,添加值为false
的cookie。加载页面时,请检查cookie。
Cookie lib: https://github.com/js-cookie/js-cookie https://github.com/js-cookie/js-cookie