dav*_*qet 2 html javascript audio jquery
为什么当离开悬停状态时,某些文件上的音频会“弹出”或“点击”,而其他文件上则不会?可以在此处观察到弹出现象(JSFiddle)。您可能需要将鼠标悬停然后取消悬停几次才能听到声音。即使文件转换为 .ogg,它仍然会在悬停退出时弹出(尽管它的响应速度明显更快)。
var test = new Audio("test.ogg");
$('#test').hover(function() {
test.play();
}, function() {
test.pause();
test.currentTime = 0;
});
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解决这个问题吗?是音频文件本身吗?有没有办法以编程方式阻止它?
每当您播放音频文件然后将其音量突然调为零时,“爆音”现象是不可避免的。
声音是振动,振动被编码为声音样本中的一个值,并且该值很可能不为零(例如任意值“x”)。
因此,当声音从“x”到 0 时,这代表另一个非常短的“振动”,具有可听见的音频效果。当播放恢复时,也会发生同样的事情,从 0 到另一个“y”值(这是下一个样本中的“振动”值)。这种“运动”会产生可听见的“砰”声。
X 或 Y 越“远离零”,爆裂声就越明显。这可以解释不同文件之间的现象的可变性。
只有在停止时音量逐渐淡出(也是几毫秒)并在恢复时逐渐淡入时,才能避免这种效果。
请原谅我的语言和物理过于简单化,我已经尽力做到可以理解。
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |