我对使用 iPhone 上的媒体播放器框架访问用户库中的音频很感兴趣。我希望能够加载给定的音频文件,然后对其执行一些专门的过滤。
理想情况下,我希望能够直接加载音频文件(或其中的一部分用于流式传输),然后使用音频转换器服务执行解压缩。获得线性 PCM 数据后,我想在将音频直接提供给音频队列之前对其执行一些过滤。
这在 iPhone 上可行吗?
如果是这样,谁能告诉我如何直接访问音频文件?是否只是使用“URL”使用 NSFile 加载它的问题(大概我是通过 MPMediaItemPropertyAssetURL 获得的)?或者我需要做一些更复杂的事情吗?
干杯!
最佳答案
您从 MPMediaItemPropertyAssetURL
获得的 URL 是 Assets 库 URL。您可以使用它来初始化 AVURLAsset
。然后使用 Assets 创建一个 AVAssetReader
并向其添加一个 AVAssetReaderOutput
(AVAssetReaderAudioMixOutput
或 AVAssetReaderTrackOutput
的实例,具体取决于你需要什么)。后一个对象最终将使您能够访问媒体数据 (-copyNextSampleBuffer
)。
关于iPhone 媒体播放器框架访问原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5389481/