AVAudioPlayer 是从磁盘流式传输文件,还是一次将其全部加载到内存中?

Posted

技术标签:

【中文标题】AVAudioPlayer 是从磁盘流式传输文件,还是一次将其全部加载到内存中?【英文标题】:Does AVAudioPlayer stream a file from disk, or does it load it into memory all at once? 【发布时间】:2012-11-18 12:58:04 【问题描述】:

我想播放长达一小时的超长音频文件。 AVAudioPlayer 似乎是最简单的解决方案。但它也有效率还是在播放之前将整个文件加载到内存中?

【问题讨论】:

"但是它是否也很高效,还是在播放之前将整个文件加载到内存中?" - 两者没有直接的 1:1 相关性。效率不高。 【参考方案1】:

AVAudioPlayer 的 Apple 文档说:

AVAudioPlayer 类的一个实例,称为音频播放器, 提供文件或内存中音频数据的播放。

Apple 建议您使用此类进行音频播放,除非您是 播放从网络流中捕获的音频或需要非常低的 I/O 延迟。

【讨论】:

以上是关于AVAudioPlayer 是从磁盘流式传输文件,还是一次将其全部加载到内存中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AVAudioPlayer 执行 .m4a 歌曲文件的流式传输?

从网络服务器流式传输音频

哪个 iOS 音频 API 设计用于以低延迟从磁盘流式传输大型本地音频文件?

read_csv() 中的 S3 阅读器是先将文件下载到磁盘还是使用流式传输?

Monotouch:尝试从使用 AVAudioPlayer 动态生成的文件中播放音频

在 R 中流式传输 CSV 内容