【问题标题】:i am studying "Audio File Stream Services Reference" in iOS [closed]我正在研究 iOS 中的“音频文件流服务参考”[关闭]
【发布时间】:2013-08-30 23:28:59
【问题描述】:

我无法理解这句话“要使用解析器,您将在获取流式音频文件时将数据传递给解析器。当解析器具有完整的音频数据包或完整的属性时,它“我不知道什么是“完整数据包”和“完整属性”。我需要你的帮助,谢谢。

【问题讨论】:

  • 找出你不明白的单词...(即你知道什么是解析器吗?)

标签: ios audio core-audio audio-streaming audiotoolbox


【解决方案1】:

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

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

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

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

【讨论】:

  • 嗨,贾斯汀,谢谢你的回答。有一些问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 2021-12-14
  • 1970-01-01
  • 2013-09-19
  • 2015-12-30
  • 1970-01-01
相关资源
最近更新 更多