使用AudioFileStreamParseBytes通过读取文件来解析字节不会调用kAudioFileStreamProperty_ReadyToProducePackets

时间:2012-12-19 05:58:59

标签: ios m4a audiostreamer

我试图通过打开音频文件(M4A)来解析字节,在循环中读取2048个字节并将其传递给AudioFileStreamParseBytes。这不会使用属性kAudioFileStreamProperty_ReadyToProducePackets调用回调。但是成功调用了属性kAudioFileStreamProperty_FileFormat。 (所以我知道回调机制正在运行。)

问题

  1. 我可以使用AudioFileStreamParseBytes通过读取本地文件来解析音频数据吗?大多数示例显示了如何通过解析AudioFileStreamParseBytes流数据来使用HTTP,而不是从本地文件中读取。
  2. 是否有人尝试过以上操作并成功处理音频文件?
  3. 注意:我没有使用AudioFileOpenWithCallbacks打开m4a文件的原因是api调用在本地下载后无法打开以下文件(http://www.arsenal-music.com/podcast/arsenal-podcast-05.m4a )。此m4a文件中嵌入了图像,AudioFileOpenWithCallbacks无法解析文件。与此同时,我使用了Matt Gallagher AudioStreamer代码打开此文件,解析它并播放它。所以我倾向于通过从本地文件中读取数据来使用AudioFileStreamerParseBytes。 (据我所知,数据是来自HTTP流还是本地文件应该没有区别。但我可能是错的。)

    我在任何API调用中都没有看到任何错误(以防万一有人问我这个问题)。我可以根据需要粘贴代码,但我想知道的是,从文件读取并将其传递给AudioFileStreamParseBytes的方法是否有效?

1 个答案:

答案 0 :(得分:0)

经过一些测试后,我发现可以使用AudioFileStreamParseBytes来解析从本地文件中读取的字节。数据不需要来自Http流。