我已经编写了一些javascript,以便播放器在暂停后停止缓冲,以便停止缓冲。每次按下播放或暂停时,代码基本上都会破坏播放器,创建一个新的播放器。我唯一的问题是它似乎只能听一次播放或暂停事件。如果我再次执行它们,代码将不再运行。有人可以看看这个,让我知道我做错了什么?在你问之前,我重新创建播放器的原因是因为我听说有必要为ios做实际停止缓冲。这是真的吗?如果有更好的方式,请告诉我,因为任何帮助将不胜感激。
谢谢! (以下代码)
<audio id="myaudio" controls>
<source id="sourceMp3" src="" autoplay type="audio/mp3" preload="none"/>
Your browser does not support the audio element.
</audio>
<script type="text/javascript">
var sourceMp3=document.getElementById('myaudio');
sourceMp3.src="url of mp3 stream";
function playfunc(){
var audio = document.getElementById('myaudio');
//audio.pause(0);
audio.src = "http://";
audio.load();
audio.remove();
var x = document.createElement("AUDIO");
x.setAttribute("id","myaudio");
x.setAttribute("controls", "controls");
x.setAttribute("src","http://");
x.load();
document.body.appendChild(x);
var audio = document.getElementById('myaudio');
audio.src = "http://";
audio.load();
audio.src = "url of mp3 stream";
audio.load();
audio.play();
console.log('play pressed')
}
function pausefunc(){
//var tmp = sourceMp3.src;
var audio = document.getElementById('myaudio');
audio.pause(0);
audio.src = "http://";
audio.load();
audio.remove();
var x = document.createElement("AUDIO");
x.setAttribute("id","myaudio");
x.setAttribute("controls", "controls");
x.setAttribute("src","http://");
x.load();
document.body.appendChild(x);
var audio = document.getElementById('myaudio');
audio.src = "http://";
audio.load();
audio.src = "url of mp3 stream";
audio.load();
audio.pause();
console.log('pause pressed');
}
document.getElementById('myaudio').addEventListener('pause', pausefunc, false);
document.getElementById('myaudio').addEventListener('play', playfunc, false);
</script>
答案 0 :(得分:0)
注释掉您的代码,然后记录点击。某事正在触发杀死事件的异常。如果没有您的代码,您会看到事件可靠地触发。