获取iPod音轨的音乐数据

Dom*_*old 9 iphone ipod objective-c ios4

如何获取iPod轨道的内容(原始/样本数据)?我见过像"铃声设计师"和iMovie这样的应用程序可以做到这一点,但我不知道他们使用哪种API或他们做了什么.我可以想象iMovie使用私有api,但"铃声设计器"是第三方应用程序,所以必须有公共api功能.

Ole*_*ann 14

我自己没有这样做,但根据文档,这些步骤(大致):

  1. 创建一个MPMediaQueryMPMediaItem从iPod库中检索一个或多个对象.
  2. 询问这些媒体项目的URL -[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL].
  3. AVURLAsset从URL 创建一个.
  4. 创建AVAssetReader资产的实例.
  5. 创建一个或多个实例AVAssetReaderTrackOutput(一个用于资产的每个轨道)并将其添加到资产阅读器中-[AVAssetReader addOutput:].
  6. 打电话-[AVAssetReader startReading].
  7. 在读取所有数据之前-copyNextSampleBuffer,请调用每个AVAssetReaderTrackOutput对象.

有关详细信息,请参阅所有这些类的文档.