如果我用.pause()方法停止音频播放然后设置.currentTime = 0然后再次调用.play()方法我会听到刮擦...有时它听起来像是在1秒的位置开始播放,但应该开始在0!我的代码:
HTML:
<audio id="sound" preload="auto" autobuffer>
<source src="a.mp3" />
</audio>
JS:
var sound = $('#sound')[0];
function playSound(){
sound.pause();
sound.currentTime = 0;
sound.play();
}
如果我调用函数eventdriven,有时会出现上述错误。
有什么想法吗? THX。
答案 0 :(得分:2)
代码看起来不错。你尝试过不同的浏览器吗? HTML5还不是最终的,浏览器供应商正致力于实施。也许是一个错误?
答案 1 :(得分:0)
试试这个......你实际上并没有在你的代码中调用该事件。你称之为活动,就你可以用这个对象做些什么来打开一个全新的世界......
我在这里做的是当用户点击音频元素并开始播放时启动计时器。然后,每1秒,我正在检查时间是否已经过去45秒。如果有,这是我正在展示的音频的试用版,并将currentTime重置为0,然后暂停视频,使其不保持循环。然后我清除间隔。
你在做什么和我在做什么之间的区别在于函数参数中的那个小'e'。如果您确实将console.log(e);
放在脚本中的某个位置然后打开Firebug或任何其他基于Web的控制台,则可以单击返回的值并查看可以从事件对象访问的所有信息。从那里,你几乎可以让音频播放器让你喝杯咖啡......好吧,也许不是那样,但是你可以按照自己的意愿低头。
$('audio').click(function(e) {
window.setInterval(function(){
if(e.currentTarget['currentTime'] > 45){
$(e.currentTarget['currentTime'] = 0);
$(e.currentTarget.pause());
clearInterval();
}
}, 1000);
});
=============================================== =========================