【问题标题】:Retrieving the name of an audio track from a stream从流中检索音轨的名称
【发布时间】:2021-05-10 21:09:31
【问题描述】:

我想重现带有<audio> 标签的音频流并显示当前曲目的名称。为此,我一直在使用音频的 audioTracks 属性。

我知道这个功能是实验性的,我特意启用它。

在 Epiphany (Gnome Web) 中,该功能完美运行(甚至无需先启用它),但在 Chrome 和 Firefox 中,AudioTrack's 标签属性始终为空。

Chrome 和 Firefox 的实现有问题吗?是否有其他 API 可以用来检索曲目的名称?

我如何检索它:

document.getElementById('audio').audioTracks[0].label;

【问题讨论】:

  • 并非所有曲目都会有标签。您正在使用哪种类型的流启用了此功能?
  • @Brad 网络电台。我知道并不是所有的标签都会有标签,但 Chrome 会在我知道的标签中显示空标签。
  • 什么样的网络收音机?我不知道任何有多个曲目的互联网广播电台。它更像是一种点播类型的流,其中会有主轨道、评论轨道,可能还有另一种语言等。您有正在使用的流的示例吗?
  • 您是否偶然混淆了音轨(就流和容器而言)和歌曲中的音轨及其当前正在播放的元数据?
  • 从流中检索信息不应花费 4 秒。元数据应该在第一个 ICY 元数据块中可用,通常在 8KB 数据之后可用,这应该在初始缓冲区大小内。换句话说,您只需要一两个数据包即可。

标签: javascript audio audio-streaming audiotrack internet-radio


【解决方案1】:

我遇到了 Eshaz 的 this library,表明可以直接从浏览器检索元数据。但不幸的是,必须正确设置 CORS 政策才能发挥作用。

就像 Brad 指出的那样,最好的选择是从服务器端检索信息。

希望 AudioTrack 功能在不久的将来成为主流。感谢@Brad 的所有帮助。

【讨论】:

  • 现在的问题是ajax请求的优化。为此,我计划使用音频 API 来帮助我检测一首歌曲何时结束而另一首歌曲何时开始。
猜你喜欢
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 2011-06-22
  • 2017-08-21
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 2017-01-17
相关资源
最近更新 更多