2017-04-08 8 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 
      } 
     } 
    } 
関連する問題