oncanplay与oncanplaythrough

时间:2019-01-09 00:07:33

标签: javascript audio stream

两个都在代码中工作。 应该使用哪个?

广播流会被认为是什么? http://hi5.1980s.fm/;

可以播放

https://jsfiddle.net/vhgL96se/142/

  

当用户代理可以播放媒体时,会触发canplay事件,但是   估计未加载足够的数据来播放媒体   它的结束而不必停止进一步缓冲内容。

     

浏览器可以播放媒体,但是估计没有足够的数据   已加载以播放媒体直到结束而不必停下来   内容的进一步缓冲。

player.oncanplay = function () {
        if (value.value !== "") {
            canPlay = true;
            playPauseIcon(true);
        }
    };

oncanplaythrough

https://jsfiddle.net/vhgL96se/144/

  

当用户代理可以播放canplaythrough事件时,将触发该事件   媒体,并估计已加载足够的数据来播放媒体   直至结束,而不必停止进一步缓冲内容。

     

浏览器估计它可以播放媒体直到最后而不会   停止内容缓冲。

player.oncanplaythrough = function () {
        if (value.value !== "") {
            canPlay = true;
            playPauseIcon(true);
        }
    };

2 个答案:

答案 0 :(得分:1)

您可以使用oncanplay。但是在某些网络浏览器中,它并不可靠,因此通常人们会同时使用这两种事件。

由于readyState确实发生更改时都会触发两个事件,因此您可以使用player.readyState来确定当前状态,并决定在设置侦听器之前发生事件时该怎么办。

html.spec media page url

答案 1 :(得分:0)

oncanplaythrough是浏览器的估计,表明已经加载了足够的媒体以能够一直播放。

oncanplay是指是否已装入任何媒体,但可能会导致播放混乱。

两者均可用于触发播放,但可以推断出不同的含义。 MDN是一个很好的澄清资源。

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/oncanplaythrough

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/oncanplay