HTML音频 - 如何检测流是否可用?

时间:2013-12-13 16:14:56

标签: javascript html events audio stream

我想使用HTML音频标签播放webradio,每周只有一次可用3小时。

当用户进入视图并且收音机不可用时,我想向用户显示一条消息,显示发生了什么。

当浏览器加载代码时,我会在Google Chrome的开发者控制台中看到,如果该流不可用,请求将被“取消”。

有人知道取消流加载时触发的事件吗?我尝试了一些事件:中止,错误,等待,暂停,结束 - 没有任何反应。

2 个答案:

答案 0 :(得分:0)

关于&#34;当用户进入视图并且收音机不可用时,我想向用户显示一条消息,显示发生了什么。&#34; < / p>

音频标签可以是一个源列表,如果前一个失败,将以级联方式加载。

示例:

<audio controls>
<source src="horse.mp3" type="audio/mpeg">
  Your browser does not support the audio tag. <- is that message enough?
</audio> 

关于&#34;某些事件:中止,错误,等待,暂停,结束&#34;

我无法看到&#34;取消&#34;在那个列表中:-)我想知道你是怎么尝试这些事件的。

如果从未播放过,则不会触发结束。您被取消,因为没有建立连接。而不是取消取消活动,取消是由于没有连接,这就是为什么你根本看不到任何事件。

有关活动的问题,请查看https://developer.mozilla.org/en-US/docs/Web/Events

在示例中,仅在加载时触发结束并且到达流的结尾。暂停似乎只有在尝试加载时才可用,但在开始播放之前暂停它。

我真的猜测,一旦媒体流不可用,就无法检测到取消。

您可以只对流进行http查询,以便检测它是否可用。我在How to check if an audio stream is correct?找到了一个例子。如果你在标签的javascript中使用xmlhttp请求者,那就更好了。

答案 1 :(得分:-1)

我完全理解这可能不是你想听到的但是:如果你知道每周节目开启的时间 - 你不能只是隐藏播放器/重定向用户如果日期和时间不在节目本身的界限?

您可以在此网址或网址上提供一些代码上下文吗? 对我来说听起来就像Chrome正在取消请求而不是取消它的流 - 例如我在尝试过去预加载音频时看到了这一点。