如何在 HTML 5 中播放经过身份验证的音频流?

Posted

技术标签:

【中文标题】如何在 HTML 5 中播放经过身份验证的音频流?【英文标题】:How to play authenticated audio stream in HTML 5? 【发布时间】:2018-09-24 10:01:27 【问题描述】:

我们有一个音频流 API,它采用 Basic Authentication。验证成功后,它会返回带有"audio/mpeg" MIME 的音频流。

我们之前在 html 中使用 <audio> 标记来播放音频文件,但现在通过身份验证,该标记不再起作用。 <audio> 标签规范不允许“身份验证”标头 See this *** thread.

如果<audio> 标签在这里没有帮助,那么在网络上通过身份验证播放音频的替代方法是什么?

【问题讨论】:

通常crossOrigin 属性是为此目的,您必须事先将授权保存在客户端的cookie中。但我不得不承认,我更习惯于属性的“匿名”而不是“使用凭据”…… @Kaiido 感谢您的回复,音频流 API 托管在同一台服务器上,而不是在不同的服务器上。但仅当请求标头具有“Authorization=Basic +token”时才可用,不幸的是,音频标签没有任何规定可以与 src URL 一起发送标头 【参考方案1】:

在源标签中使用 URL 格式 https://username:password@example.com/your_stream,这会在“授权”标头中发送凭据。

【讨论】:

我怀疑这是一种不安全的做法,因为我们将用户名:密码放在 URL 中 :) 不推荐在 URL 中发送 SRC 属性的用户名和密码

以上是关于如何在 HTML 5 中播放经过身份验证的音频流?的主要内容,如果未能解决你的问题,请参考以下文章

从ipcam播放音频流的极端延迟

如何禁用音频(流)html5元素的自动播放

播放实时音频流 - html5

如何使用 Soundcloud api 获取流到 html5 音频播放器?

如何从实时流中播放音频

如何在 iPhone/iPad 中播放流音频