2010-10-11 13 views
10

Jak mogę uzyskać zawartość (dane surowe/przykładowe) z utworu iPoda? Widziałem aplikacje takie jak "Designer Ringtone" i iMovie, które mogą to zrobić, ale nie mam pojęcia, które aplikacje używają i co robią. Mogę sobie wyobrazić, że iMovie używa prywatnych apisów, ale "Designer Ringtone" jest aplikacją innej firmy, więc musi być możliwe z publicznymi funkcjami API.Uzyskiwanie muzycznych danych z utworu iPoda

Odpowiedz

14

Nie zrobiłem tego sam, ale według dokumentacji są to kroki (w przybliżeniu):

  1. Załóż MPMediaQuery aby pobrać jeden lub więcej MPMediaItem obiektów z biblioteki iPoda.
  2. Zapytaj tych elementów multimedialnych o ich URL z -[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL].
  3. Utwórz adres URL z adresu AVURLAsset.
  4. Utwórz instancję z AVAssetReader dla zasobu.
  5. Utwórz jedną lub więcej instancji AVAssetReaderTrackOutput (jedną dla każdej ścieżki zasobu) i dodaj je do czytnika zasobów za pomocą -[AVAssetReader addOutput:].
  6. Zadzwoń pod -[AVAssetReader startReading].
  7. Zadzwoń pod -copyNextSampleBuffer dla każdego z twoich obiektów AVAssetReaderTrackOutput, aż przeczytasz wszystkie dane.

Szczegółowe informacje można znaleźć w dokumentacji tych wszystkich klas.

+0

Czy podasz przykładowy kod? proszę lub odniesienie –

Powiązane problemy