Как я могу получить контент (исходные/выборочные данные) iPod-трека? Я видел такие приложения, как "Ringtone Designer" и iMovie, которые могут это сделать, но я понятия не имею, какой api они используют или что они делают. Я могу представить, что iMovie использует private apis, но "Ringtone Designer" - стороннее приложение, поэтому оно должно быть возможным с помощью публичных api-функций.
Получение музыкальных данных iPod-трека
Ответ 1
Я не делал этого сам, но, согласно документации, это шаги (примерно):
- Создайте
MPMediaQuery
для извлечения одного или нескольких объектовMPMediaItem
из библиотеки iPod. - Запросите эти элементы мультимедиа для своего URL-адреса с помощью
-[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL]
. - Создайте
AVURLAsset
из URL. - Создайте экземпляр
AVAssetReader
для актива. - Создайте один или несколько экземпляров
AVAssetReaderTrackOutput
(по одному для каждого трека ресурса) и добавьте их в считывающее устройство с-[AVAssetReader addOutput:]
. - Вызов
-[AVAssetReader startReading]
. - Вызовите
-copyNextSampleBuffer
для каждого из ваших объектовAVAssetReaderTrackOutput
, пока вы не прочтете все данные.
Подробнее см. документацию ко всем этим классам.