2010-10-11 24 views
10

Comment puis-je obtenir le contenu (données brutes/échantillons) d'une piste iPod? J'ai vu des applications comme "Ringtone Designer" et iMovie qui peuvent le faire, mais je n'ai aucune idée de quelle API ils utilisent ou de ce qu'ils font. Je pourrais imaginer qu'iMovie utilise des apis privés, mais "Ringtone Designer" est une application tierce, donc cela doit être possible avec les api-fonctions publiques.Obtention des données musicales d'une piste iPod

Répondre

14

Je ne l'ai pas fait moi-même, mais d'après la documentation ce sont les étapes (environ):

  1. Créer un MPMediaQuery pour récupérer un ou plusieurs objets MPMediaItem de la bibliothèque iPod.
  2. Demandez ces éléments multimédias pour leur URL avec -[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL]. Créez un AVURLAsset à partir de l'URL. Créez une instance de AVAssetReader pour l'actif.
  3. Créez une ou plusieurs instances de AVAssetReaderTrackOutput (une pour chaque piste de l'actif) et ajoutez-les au lecteur de données avec -[AVAssetReader addOutput:].
  4. Appelez -[AVAssetReader startReading].
  5. Appelez -copyNextSampleBuffer pour chacun de vos objets AVAssetReaderTrackOutput jusqu'à ce que vous ayez lu toutes les données.

Voir la documentation pour toutes ces classes pour les détails.

+0

Souhaitez-vous fournir un exemple de code? s'il vous plaît, ou référence –