2010-05-01 157 views
1

有一个AudioFileOpenURL函数可以打开一个文件。使用AudioFileReadPackets可以访问该文件以读取数据包。但是我脑海中的一件事是:AudioFileOpenURL实际上是否将整个怪物加载到内存中?或者是一个轻量级的操作?“打开文件”是否意味着将其完全加载到内存中?

那么是否有可能从文件中读取数据,只有特定的部分,没有在内存中的全部TB的东西?

+0

是的。是。 :) – 2010-05-01 13:05:00

回答

2

AudioFileOpenURL实际上是否会将整个怪物加载到内存中?

不,它只是让你一个文件指针。

或者是一个轻量级的操作?

是的,相当轻量级。只需要一个文件系统查找。

那么是否有可能从文件中读取数据,只有特定的部分,而没有在内存中的全部TB的东西?

是的,你可以使用fseek去某一点在文件中,然后fread将其读入缓冲区(或AudioFileReadBytes)。

1

不,它不会将整个文件加载到内存中。 “打开文件”返回一个句柄,允许您读取或写入文件。

1

我不知道Objective-C,但是用大多数语言打开文件,这只是让您有能力通过READ操作访问内容。在你的情况下,你可以执行一个SEEK来将文件指针移动到所需的位置,然后读取你需要的字节数。

1

AudioFileOpenURLopen(2)该文件并读取必要的信息(4096字节)以确定音频类型。

open(2)不会将整个文件加载到RAM中。

AudioFileOpenURL是C API,而不是Objective-C。)

相关问题