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.
I haven't done this myself but according to the documentation these are the steps (roughly):
MPMediaQuery
to retrieve one or more MPMediaItem
objects from the iPod library.-[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL]
.AVURLAsset
from the URL.AVAssetReader
for the asset.AVAssetReaderTrackOutput
(one for each track of the asset) and add them to the asset reader with -[AVAssetReader addOutput:]
.-[AVAssetReader startReading]
.-copyNextSampleBuffer
for each of your AVAssetReaderTrackOutput
objects until you have read all the data.See the documentation to all these classes for details.