2017-04-08 13 views

답변

0

전체 라이브러리의 재생 시간을 가져와야하는 경우 MPMediaQuery의 항목을 반복하면됩니다.

let query = MPMediaQuery.albums() 
    let items = query.items 
    var totalTime: TimeInterval = 0.0 
    if items != nil { 
     for item in items! { 
      totalTime += item.playbackDuration 
     } 
    } 
    let duration = Int(totalTime) 
    let seconds = duration % 60 
    let minutes = duration/60 % 60 
    let hours = duration/3600 
    print("Total playback time: \(hours):\(minutes):\(seconds)") 

컬렉션은 당신에게 MPMediaItems의 배열 순으로 정렬 및 groupingType 옵션 (아티스트, 앨범, 장르 등) 컬렉션으로 그룹화를 제공 할 것입니다. 라이브러리의 모든 앨범에 대한 재생 시간 예를 들면 다음과 같이 반복 할 수 있습니다.

let query = MPMediaQuery.albums() 
    let collections = query.collections 
    var albumTime: TimeInterval = 0.0 
    if collections != nil { 
     for collection in collections! { 
      if let albumTitle = collection.representativeItem?.value(forProperty: MPMediaItemPropertyAlbumTitle) { 
       for item in collection.items { 
        albumTime += item.playbackDuration 
       } 
       let duration = Int(albumTime) 
       let seconds = duration % 60 
       let minutes = duration/60 % 60 
       let hours = duration/3600 
       print("\"\(albumTitle)\" playback time: \(hours):\(minutes):\(seconds)") 
       albumTime = 0.0 
      } 
     } 
    }