Search code examples
iosswiftshared-directory

iOS - how to get music file from shared folder with use swift


I make a music player with swift. I want that an user adds music files via the shared folder in iTunes. I made the shared folder. How can I load files from the shared folder to UITableViewCell and then manage them?


Solution

  • I wrote a following code. It works for me

            func exportFilesFromFolder() {
            var folder = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).first as! NSURL
            var allFiles = fileManager.contentsOfDirectoryAtURL(folder, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles, error: nil)!
            var filterArray = allFiles.map(){ $0.lastPathComponent }.filter(){ $0.pathExtension == "mp3" } as [String]
    //        println("filter array \(allFiles[3])")
            var superURL: NSURL!
            for itemInFilterArray in filterArray {
                var direct = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
                if var url: NSURL = direct.first as? NSURL {
                    superURL = url.URLByAppendingPathComponent(itemInFilterArray)
                }
                var playerItem = AVPlayerItem(URL: superURL)
                var equalazerString: String!
                var commonMetaData = playerItem.asset.commonMetadata as! [AVMetadataItem]
                for item in commonMetaData {
                    if item.commonKey == "title" {
                        equalazerString = item.stringValue
                        if equalazerString == currentSongString {
                            localArrayNames.append(superURL)
                        } else {
    //                        println("it is not equals")
                        }
                    }
                }
            }
        }