2013-03-01 5 views
0

내 iPod Touch에서 모든 재생 목록 모음을 요청하는 쿼리를 인스턴스화했습니다. MPMediaQuery 컬렉션 속성에서 반환 된 결과에는 43 개의 항목이 포함되어 있습니다. 여기에는 기본 뮤직 앱에 표시되는 17 개의 PlayLists가 모두 포함됩니다. 그러나 컬렉션에는 26 개의 "재생 목록"이 포함되어 있습니다. 실제로는 내 iPod 라이브러리의 앨범입니다. 그것은 iPod에있는 앨범 중 일부 (전부는 아님)를 나타냅니다.재생 목록 (iPod)의 MPMediaQuery에는 일부 앨범이 포함되어 있습니다.

실제 재생 목록과 앨범을 구별 할 수있는 MPMediaPlaylist 속성이 있는지 확인하려고했습니다. 아무런 효과가 없습니다. 컬렉션의 섹션을보고 실제 재생 목록이 앨범과 별도 섹션에 보관되어 있는지 확인했지만 단 하나의 섹션 만있었습니다. 마지막으로 앨범에 PersistantID가 있는지 살펴 보았습니다. 설명서에는 재생 목록에 고유 한 것으로 나와 있습니다. 배열의 모든 항목에는 PersistantID가 있습니다.

음악 앱에는 17 개의 실제 재생 목록 만 표시되므로 별다른 문제가 없습니다. 여기

MPMediaQuery * myPlaylistsQuery = [ MPMediaQuery playlistsQuery ]; 
NSArray  * playlists  = [ myPlaylistsQuery collections ]; 

은 "재생 목록"배열의 내용을 심문 할 때 기록됩니다 데이터의 샘플입니다 :

는 ======= 여기에 쿼리를 작성하는 데 사용되는 코드는 =============================================
재생
는 .... 플레이리스트 수집 섹션 01있다
.... 플레이리스트 컬렉션
바흐
.... Persi 43 MPMediaPlaylist 개체있다 stant ID : 사이먼과 가펑클
....들이 지속적인 ID 최고의
17,002,820,337,772,537,981 : 2965021518813542622
블루
....들이 지속적인 ID : 11,514,004,552,991,695,558
블루스
....들이 지속적인 ID : 14,243,796,139,384,893,728
. ... (기타)

위 목록에서 "Bach", "Simon and Garfunkel Best"및 "Blue"항목은 앨범을 나타냅니다. "Blues"항목은 iTunes에서 내가 정의한 진정한 재생 목록 중 첫 번째 항목입니다.

나는 재생 목록 쿼리에서 반환 된 항목을 앨범 쿼리의 항목과 비교하고 일치 항목을 제거 할 수 있다고 가정합니다. 더 간단한 해결책이 있습니까?

답변

0

나는 자주 [[MPMediaQuery playlistsQuery] collections]을 사용하고 있으며 결과로 앨범을 가져 오지 못했습니다. 나는 당신의 코드에 다른 문제가 있다고 생각한다. 예를 들어, 수동으로 매개 변수를 추가/제거하여 재생 목록을 작성한 후에도 재생 목록을 사용자 정의 할 수 있으며, 많이 변경하면 재생 목록 대신 앨범을 반환 할 수도 있습니다.

특히 쿼리의 groupingType 속성을 확인하십시오. playlistQuery의 경우 기본값으로 MPMediaGroupingPlaylist으로 설정해야하지만 검색어에 대해이 속성을 수동으로 재정의하거나 제거한 것일 수 있습니다.

그렇지 않으면 장치 시스템 API 또는 iTunes 라이브러리에 버그가 남아있을 수 있습니다. 그러나 이것은 매우, 매우, 아주 희박합니다!

+0

안녕하세요, Miho, 답장을 보내 주셔서 감사합니다. 다른 사람들이 문제없이 [[[MPMediaQuery playListQuery] collections]를 사용하고 있다는 것을 아는 것은 매우 유용합니다.당신이 추천 하듯이, 나는 쿼리를위한'groupingType'을 체크했고 그것이 MPMediaGroupingPlaylist임을 가리키는 값 6을 얻었다. 매개 변수를 추가하거나 제거하면 쿼리를 변경할 수 있다는 귀하의 요점은 좋은 것입니다. 그러나 첫 번째 게시물에 표시된 두 줄의 코드는 내 코드에서 실행되는 처음 두 줄 ("주"외부)입니다. API 또는 iTunes 버그가 발생하지 않을 것이라는 데 동의하지만 그럴듯한 옵션이 부족합니다. - 조지 – user2121934