我试图在Cordova应用程序上使用
HTML5 Audio流式传输Shoutcast网址.
我遇到的问题是:当音频流丢失与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) { ... }
脚本
>连接到互联网(比如,通过热点)并启动音频收音机.
>断开互联网上的热点.
播放缓冲内容后,音频停止播放.但是没有回调指示连接丢失.
> media.networkState是2(NETWORK_LOADING)
> media.playbackRate为1(正常播放)
> media.readyState是4(HAVE_ENOUGH_DATA)
> media.preload是none
我尝试的回调(当连接丢失时没有触发)是:
>安装
onreset
> onsuspend
onerror
进度
正在等待
问题 – 是否有音频回调,由于缺乏连接而无法播放音频时将触发?
如果没有,是否有任何方法将更新readyState或networkState?如果是这样,我可以设置一个定时器来检查这些值.