0

我无法理解这句话“要使用解析器,您将在获取流式音频文件时将数据传递给解析器。当解析器具有完整的音频数据包或完整的属性时,它会调用回调函数。然后您的回调处理解析的数据——例如通过播放或将其写入磁盘。” 我不知道什么是“完整数据包”和“完整属性”。我需要你的帮助,谢谢。

4

1 回答 1

6

音频文件的数据是递增的。您将数据提供给解析器。一旦存在“足够”的数据,您将通过用户提供的回调返回数据。

类比:您想逐行读取文本文件,并在读取时提供解析器数据字节。一行有多少字节?它取决于许多因素(例如,文本文件的内容是什么?它采用什么编码?有什么方法可以预测行长吗?)。在这种情况下,当有足够的数据返回下一行时,您会收到通知。

因此,音频文件流 API 是一种能够处理多种音频文件格式的抽象。一些格式以不同大小的字节数存储它们的样本数据(或其他数据/属性)。PCM 格式(例如)通常是由文件头指定的连续的、交错的宽度值——但压缩格式往往具有更大的数据包大小。此外,某些属性/数据包是可变长度的,因此您无法合理地知道何时根据您输入的数据量向转换器询问数据——解析、解码和转换是 API 的工作,我向您保证实现如果您需要根据二进制输入进行解码和提取,所有这些文件格式的解析器/解码器/转换器将需要很长时间。

因此,您在接收/读取数据时推送数据,并在您有“可用”数量时推送给您。

于 2013-08-28T03:24:59.273 回答