Вот на что обратить внимание. Мое приложение делает обычные [MPMediaQuery albumsQuery]
, чтобы собрать все альбомы и их песни. Это прекрасно работает, даже если вся музыкальная библиотека состоит из материалов iTunes Match, большинство из которых все еще находится в облаке. Но есть одна проблема:
Если в этот момент воспроизводится песня, и если эта песня была в облаке, так что теперь она загружается, то эта песня и следующая песня в альбоме отсутствуют из результата [MPMediaQuery albumsQuery]
. Вероятно, это потому, что эти песни «в пути»: они оба частично загружены. (Я предполагаю, что две песни всегда загружаются, поэтому, когда первая заканчивается, можно плавно перейти к следующей.)
Более того, воспроизведение и, следовательно, загрузка песни вызывает MPMediaLibraryDidChangeNotification
, хотя «оглавление» библиотеки фактически не изменилось.
Я не вижу никакого способа обойти это, так как нет другого способа запросить библиотеку. Apple должна исправить систему и API, чтобы учесть существование iTunes Match. К сожалению, я не понимаю, что они работают над этим для iOS 5.1 ...