iPhone 媒体播放器框架访问原始文件

标签 iphone objective-c c audioqueueservices mediaplayerservices

我对使用 iPhone 上的媒体播放器框架访问用户库中的音频很感兴趣。我希望能够加载给定的音频文件,然后对其执行一些专门的过滤。

理想情况下,我希望能够直接加载音频文件(或其中的一部分用于流式传输),然后使用音频转换器服务执行解压缩。获得线性 PCM 数据后,我想在将音频直接提供给音频队列之前对其执行一些过滤。

这在 iPhone 上可行吗?

如果是这样,谁能告诉我如何直接访问音频文件?是否只是使用“URL”使用 NSFile 加载它的问题(大概我是通过 MPMediaItemPropertyAssetURL 获得的)?或者我需要做一些更复杂的事情吗?

干杯!

最佳答案

您从 MPMediaItemPropertyAssetURL 获得的 URL 是 Assets 库 URL。您可以使用它来初始化 AVURLAsset。然后使用 Assets 创建一个 AVAssetReader 并向其添加一个 AVAssetReaderOutput(AVAssetReaderAudioMixOutputAVAssetReaderTrackOutput 的实例,具体取决于你需要什么)。后一个对象最终将使您能够访问媒体数据 (-copyNextSampleBuffer)。

关于iPhone 媒体播放器框架访问原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5389481/

相关文章:

iphone - AppDelegate 中的 didSelectViewController 没有被调用

iphone - 游戏中心集成简单指南?

objective-c - 如何将 View 的框架转置到它的 super View 中?

C 代码仅在 ^Z 之后打印

iphone - 应用程序的图标应如何显示今天的日期

ios - 在 iOS 中设置模糊的图像背景

ios - 嵌套堆栈 View 不会响应基于大小类的更改轴

ios - Storyboard设计模式(分享或不分享)

c - 未指定两个边界的二维数组

c - 在哪里可以找到 GDK_comma、GDK_dollar、... 常量的列表?