检测HTML5音频流何时中断或暂停

欢喜

我正在尝试在Cordova应用程序上使用HTML5音频流式传输Shoutcast URL。

我遇到的问题是:当音频流失去与ShoutCast URL的连接时,似乎没有触发的回调在此阶段,音频元素表明它正在播放音频,但没有音频。

代码

Radio = {
    initialized: false,
    isBuffering: false,
    interrupted: false,
    isPlaying: false,
    media: null,
    trackName: '',
    url: 'shoutcast_url',
    initialize: function () {
        if (!this.media) {
            this.media = new Audio(this.url);

            this.media.preload = "none";

            this.media.onerror = function (e) {
                App.alert("Unable to connect to Radio");
                Radio.interrupt();
            };

            this.media.onwaiting = function (e) {
                Radio.set_buffering(true);
            };

            this.media.onplaying = function (e) {
                Radio.set_buffering(false);
            };
        }
    },
    set_buffering: function (value) {
    ...
    }

设想

  • 连接到Internet(例如,通过热点)并启动音频广播。
  • 断开热点与Internet的连接。

播放缓冲的内容后,音频将停止播放。但是不会触发表示连接断开的回调。

  • media.networkState2(NETWORK_LOADING)
  • media.playbackRate1(以正常速度播放)
  • media.readyState4(HAVE_ENOUGH_DATA)
  • media.preloadnone

我尝试过的回调(当连接断开时不会触发)是:

  • onstalled
  • onreset
  • onsuspend
  • onerror
  • onprogress
  • onwaiting

问题-如果由于缺少连接而无法播放音频时,是否会触发音频回调?

如果不是,是否有任何方法可以更新readyStatenetworkState如果是这样,我可以设置一个计时器来检查这些值。

欢喜

当使用HTML5音频播放受支持的音频流时,弄清楚音频是否正在播放的最佳方法是监听事件timeupdate

当currentTime属性指示的时间已更新时,将触发timeupdate事件。

仅在播放音频时触发此事件。如果音频由于任何原因停止播放,timeupdate也不会触发。

但是,浏览器支持不完整。

  • 在Android 5.0(Chrome 48)上,timeupdate永远不会触发或currentTime更新。
  • 在最新的台式机浏览器(Mozilla 45和Chrome 49)上,timeupdate功能如文档所述。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

播放/暂停按钮HTML5音频

来自分类Dev

播放/暂停按钮HTML5音频

来自分类Dev

播放实时音频流-html5

来自分类Dev

HTML5音频:createMediaElementSource中断音频输出

来自分类Dev

如何停止和恢复HTML5中的实时音频流而不仅仅是暂停它?

来自分类Dev

如何禁用html5音频元素播放/暂停按钮

来自分类Dev

我的JS脚本没有暂停HTML5音频?

来自分类Dev

HTML5音频暂停不起作用

来自分类Dev

java try catch程序流何时中断?

来自分类Dev

java try catch程序流何时中断?

来自分类Dev

java try catch程序流何时中断?

来自分类Dev

如何检测HTML5视频是否已暂停缓冲?

来自分类Dev

如何在html5中绘制音频流的波形?

来自分类Dev

使用html5播放音频流

来自分类Dev

Coffeescript HTML5音频会暂停所有其他音频元素

来自分类Dev

HTML5视频,如何检测何时没有音轨?

来自分类Dev

tabindex =“ xxxx”何时中断?

来自分类Dev

切换SHOUTcast音频流HTML5音频播放器和JQuery

来自分类Dev

切换SHOUTcast音频流HTML5音频播放器和JQuery

来自分类Dev

功能检测自动播放HTML5音频-移动浏览器上的音频

来自分类Dev

单击另一个HTML5音频时会暂停-IE问题

来自分类Dev

Flash HTML5 canvas条件的音频。暂停和恢复功能

来自分类Dev

html5 音频:点击播放,再次点击暂停多首曲目

来自分类Dev

HTML 5音频API声音正确暂停

来自分类Dev

HTML5音频库

来自分类Dev

音频标签HTML5

来自分类Dev

禁用HTML5音频

来自分类Dev

音频标签HTML5

来自分类Dev

音频问题html5