首页 > 解决方案 > 使用带有 ID3 标签的 AAC 和 AVPlayer

问题描述

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

1) 在音频播放时向用户呈现当前 ID3 标签

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

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

标签: macosavplayerhttp-live-streaming

解决方案


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


推荐阅读