我正在尝试使用 Tone.js 和 jQuery 创建一个复选框 ( $('#button')
),其操作会根据状态player
(是否正在播放音频)而变化。
因此,逻辑是如果音频已经是started
,则复选框的操作只是mute
(或取消静音)音频。但是,如果音频还没有,那么started
我希望复选框start
player
(使用默认值player.mute == false
)并将其自己的操作更改为mute
/unmuting。这意味着,一旦player.state == started
您无法更改它,只能切换是否muted
。
我设法获得了一个可以切换state
或值的mute
函数,但不是复选框本身的操作受state
. 我下面的代码是我对此的尝试,但它似乎不起作用☹️ - 任何帮助将不胜感激。
const button = $('#button');
if(player.state == 'started') {
$(button).attr('checked', true);
} else if(player.state == 'stopped') {
$(button).attr('checked', false);
}
if(player.state == 'started') {
$(button).change(function(){
if(player.mute == true) {
player.mute == false;
$(this).attr('checked', true);
} else if(player.mute == false) {
player.mute == true;
$(this).attr('checked', false);
}
});
} else if(player.state == 'stopped') {
$(button).change(function(){
player.start();
$(this).attr('checked', true);
});
}
仅用于上下文:这完全是因为是否允许自动播放因浏览器而异。在脚本前面的某些自动播放功能中,意味着player
从页面加载开始(),在其他情况下,需要明确的用户操作()。