Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting the musical data of an iPod-track [closed]

How can I get the content (raw/sample data) of an iPod-track? I've seen apps like "Ringtone Designer" and iMovie which can do it, but I have no idea which api they use or what they do. I could imagine that iMovie uses private apis, but "Ringtone Designer" is a third-party app, so it must be possible with the public api-functions.

like image 453
Dominik Seibold Avatar asked Oct 11 '10 10:10

Dominik Seibold


1 Answers

I haven't done this myself but according to the documentation these are the steps (roughly):

  1. Create an MPMediaQuery to retrieve one or more MPMediaItem objects from the iPod library.
  2. Ask those media items for their URL with -[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL].
  3. Create an AVURLAsset from the URL.
  4. Create an instance of AVAssetReader for the asset.
  5. Create one or more instances of AVAssetReaderTrackOutput (one for each track of the asset) and add them to the asset reader with -[AVAssetReader addOutput:].
  6. Call -[AVAssetReader startReading].
  7. Call -copyNextSampleBuffer for each of your AVAssetReaderTrackOutput objects until you have read all the data.

See the documentation to all these classes for details.

like image 86
Ole Begemann Avatar answered Oct 09 '22 14:10

Ole Begemann