Javascript 基于cookie设置html音频播放/暂停(仅适用于暂停,但不适用于播放)

Javascript 基于cookie设置html音频播放/暂停(仅适用于暂停,但不适用于播放),javascript,cookies,Javascript,Cookies,我试图让背景音频记住播放/暂停状态。我已经实现了暂停并将暂停状态存储在cookie中,因此,当我在第1页和第2页之间切换时,它将保持暂停状态(与最初在两页上自动播放相比),但当我在这之后单击播放并刷新页面时,即使cookie在inspector中更改为“false”,也会保持暂停状态,音频无法播放,div颜色也不会变为绿色 现场演示 这是密码 外部脚本 <script src="https://code.jquery.com/jquery-3.5.1.js">&

我试图让背景音频记住播放/暂停状态。我已经实现了暂停并将暂停状态存储在cookie中,因此,当我在第1页和第2页之间切换时,它将保持暂停状态(与最初在两页上自动播放相比),但当我在这之后单击播放并刷新页面时,即使cookie在inspector中更改为“false”,也会保持暂停状态,音频无法播放,div颜色也不会变为绿色

现场演示

这是密码

外部脚本

<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js"></script>
JS

.div {
background-color:green;
height: 50px;
color: white;
text-align: center;
}
var audio = $('#player')[0];
audio.volume = 0.5;

var isMuted = Cookies.get('playerMuted'); // Receive stored cookie
if(isMuted) // If muted, stop the player
{
$('#player')[0].pause();
$('#toggle').css({'background-color': 'red'});
} 
else
{
$('#player')[0].play();
$('#toggle').css({'background-color': 'green'});
}

// This function will be called when you click the toggle div
function toggleMute() 
{
if(isMuted) // If player is muted, then unmute it
{
$('#player')[0].play();
$('#toggle').css({'background-color': 'green'});
isMuted = false;
} else // Else mute it
{
$('#player')[0].pause();
$('#toggle').css({'background-color': 'red'});
isMuted = true;
}
Cookies.set('playerMuted', isMuted); // Save current state of player
}

$('#toggle').click(toggleMute);

在新浏览器中,音频自动播放不受支持,用户必须显式播放音频,这就是为什么播放部分不起作用的原因。你可以在这里了解更多
()。

解决了,结果我只需要使用

if(isMuted=='true')
然后
ismute='false';或isMuted=‘true’

这是你的电话号码

就像Chrome中启用自动播放的时钟一样工作!:)

Safari对自动播放的要求更严格,所以我添加了一个检查,只对Chrome运行这段代码,并对Safari运行标准播放器

var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

if(isSafari){ 
alert('Is safari');
//Do something

} else {
alert('Is other browser');
// Do something
}

如果有人在Safari中找到了自动播放的解决方法,或者如果您需要在Chrome中实现自动播放的帮助,请告诉我

不幸的是,这个答案是不正确的。它已经从一开始就在Chrome中自动播放,没有用户交互,所以我不明白为什么在设置cookie之后它不会自动播放。除此之外,div的颜色也没有改变,因此if/else似乎有问题,但我无法解决。您确定代码到达了else部分吗。(尝试在其中放入console.log语句)另外,我相信您可能已经看过了,但是div的背景色已经是绿色,请尝试将其更改为其他颜色,如果效果良好,您可以确保audio.play()不起作用
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

if(isSafari){ 
alert('Is safari');
//Do something

} else {
alert('Is other browser');
// Do something
}