如何检查 webm icecast 流是否处于活动状态?

How can I check if a webm icecast stream is active?

我正在尝试检查 webm Icecast 流是否打开。对于 HLS 流,我使用 axios.head 方法,如下所示:

try {
    let res = await axios.head(url);
    return /2\d\d/.test('' + res.status);
} catch (err) {
    console.log('err', url, err);
    return false;
}

而且效果很好。但是在调试的过程中了解到.

OPTIONS 方法对于 Icecast 流也失败(我得到 net::ERR_FAILED)。我无法获取流,因为它会获取整个流。我只是想确保它处于活动状态。

如何检查来自 Icecast 的 webm 流是否存在?

编辑

让我再解释一下。这是一个通用的流媒体网站。用户通知 he/she 想看的几个直播流和他们的时间。这些流可以在网络的任何地方。在开始时,用户转到播放器页面并播放流 如果它处于活动状态

“如果它处于活动状态”部分是我在这里尝试的。

Icecast 不正确支持 CORS,因此目前没有通过 Fetch 或 XHR 执行此操作的好方法。

但是,在我看来,您需要做的就是尝试播放流。然后,看看有没有报错。

const audio = new Audio('https://example.com/stream');
audio.addEventListener('error', () => {
  // Stream didn't load, so in all probability it's not online!
});

audio.play(); // This needs to happen on a trusted event, like a click handler, due to autoplay policy