如何检查 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
我正在尝试检查 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