Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Html5音频ios播放事件_Javascript_Html_Ios_Audio - Fatal编程技术网

Javascript Html5音频ios播放事件

Javascript Html5音频ios播放事件,javascript,html,ios,audio,Javascript,Html,Ios,Audio,我正在尝试检测ios上何时开始播放音频。问题是,当我按play时,play、playing事件会立即启动,但音频会在几秒钟后开始播放。我正在使用~5mb音频文件 为什么在这些事件和音频启动之间会有这样的延迟,我怎样才能检测到声音何时真正启动 document.getElementById('audio').addEventListener(“播放”,播放,假); document.getElementById('audio')。addEventListener(“播放”,播放,假); 函数播放

我正在尝试检测ios上何时开始播放音频。问题是,当我按play时,play、playing事件会立即启动,但音频会在几秒钟后开始播放。我正在使用~5mb音频文件

为什么在这些事件和音频启动之间会有这样的延迟,我怎样才能检测到声音何时真正启动

document.getElementById('audio').addEventListener(“播放”,播放,假);
document.getElementById('audio')。addEventListener(“播放”,播放,假);
函数播放(){
var h=document.createElement(“H1”);
var t=document.createTextNode('play');
h、 儿童(t);
文件.正文.附件(h);
}
函数播放(){
var h=document.createElement(“H1”);
var t=document.createTextNode('playing');
h、 儿童(t);
文件.正文.附件(h);
}

虽然我不确定是什么原因导致了iOs设备上的延迟,但我建议采取一种解决方法,无论使用何种浏览器,这种方法都应该有效

不要收听播放播放事件,而是收听时间更新事件。在回调函数中,只需检查音频元素的.currentTime属性是否大于零

document.getElementById('audio').addEventListener(“时间更新”,更新,false);
document.getElementById('audio')。addEventListener(“播放”,播放,假);
var=false;
var=false;
var startTime;
函数更新(){
if(playpush&&!started&&document.getElementById('audio').currentTime>startTime){
开始=真;
var h=document.createElement(“H1”);
var t=document.createTextNode('playing');
h、 儿童(t);
文件.正文.附件(h);
}
}
函数播放(){
play=true;
startTime=document.getElementById('audio').currentTime;
}

虽然我不确定是什么原因导致了iOs设备上的延迟,但我建议采取一种解决方法,无论使用何种浏览器,这种方法都应该有效

不要收听播放播放事件,而是收听时间更新事件。在回调函数中,只需检查音频元素的.currentTime属性是否大于零

document.getElementById('audio').addEventListener(“时间更新”,更新,false);
document.getElementById('audio')。addEventListener(“播放”,播放,假);
var=false;
var=false;
var startTime;
函数更新(){
if(playpush&&!started&&document.getElementById('audio').currentTime>startTime){
开始=真;
var h=document.createElement(“H1”);
var t=document.createTextNode('playing');
h、 儿童(t);
文件.正文.附件(h);
}
}
函数播放(){
play=true;
startTime=document.getElementById('audio').currentTime;
}


丑陋修复,但可以用于媒体启动时的事件,但如果您不断收听播放事件(例如更改播放机上的暂停/播放图标),则每次都需要获取此事件。丑陋修复,但可以用于媒体启动时的事件,但如果您不断收听播放事件(例如,要更改播放机上的暂停/播放图标),则每次都需要获取此事件。