你好我的闹钟有点问题。 一切都在PC上正常工作,而移动(Safari)计时器被忽略。 这是脚本:
(function(){
var audioElement = document.createElement('audio');
audioElement.setAttribute('src',
'http://tx.sharp-stream.com/icecast.php?i=mos.mp3');
audioElement.load();
var alarmtime ;
var alarmseted = false;
var starttime = null;
var onehour = 1000*60*60;
$("#setalarm").click(function(){
alarmtime = $("input").val();
console.log(alarmtime);
alarmsetted = true;
});
$("#actual").click(function(){
audioElement.pause();
audioElement.currentTime=0;
});
$("#StartCounting").click(function(){
starttime = new Date();
});
$("#StopCounting").click(function(){
starttime = null;
});
$("#textbox1").val( new Date(new Date().valueOf() + 1*60*1000).toLocaleTimeString());
setInterval(function(){
var storage = $("#main");
var date = new Date();
var timestr = date.toLocaleTimeString();
storage.html(timestr);
if (alarmseted) {
//storage.html(storage.html() +
}if (alarmtime === timestr)
{
audioElement.play();
alarmseted = false;
}if (starttime!== null) {
storage.html(storage.html() + "<br />" +(new Date(date-starttime-onehour)).toLocaleTimeString());
//console.log((date-starttime));
}
},
1000);
})();
问题是移动声音从一开始就播放,所以如果我参数播放一小时,闹铃响起就没有任何反应。
我尝试将audioElement.load ();
置于条件if (AlarmTime === timestr)
但音乐无法启动,也没有任何反应。
答案 0 :(得分:2)
如果没有用户的直接物理互动(例如ontouchstart
,onclick
等),您无法在大多数移动浏览器中以编程方式播放音频/视频,因此无法实现您想要完成的任务。您可以做的最好的事情是在文档的任何位置侦听touchstart
事件,在音频上调用play()
,立即呼叫pause()
,然后在再次播放音频之前等待闹钟。