在 AVPlayer 中使用带有 ID3 标签的 AAC

Using AAC with ID3 tags with AVPlayer

我有一个 AAC 文件,其中包含从 HLS 流中捕获的一堆 ID3 标签。我可以用 AVPlayer 很好地播放它。我想做的是:

1) 在播放音频时向用户展示当前的 ID3 标签

2) 获取所有唯一 ID3 标签的列表,以便播放可以跳转到该位置

我发现无法通过 AVPlayer API 获取 ID3 元数据。我可以在 AAC 文件中搜索所有 ID3 标签,但这会给我 ID3 标签的文件字节偏移量,而且似乎没有办法将文件字节偏移量转换为时间偏移量以便跳转播放到该位置。

aac 文件中的每一帧都以包含其采样率的 ADTS header 开头。每帧正好是 1024 个样本。因此,每一帧都是 sample_rate/1024 秒长,第一帧从零开始。由此,您可以遍历文件,并计算每一帧的时间戳。