1

我正在用 mp3 ftp steam 制作小型音乐播放器。

这就是我将我的 URL 添加到列表中的方式:

self.playList.add("http://my-ftp.pl/mp3/1.mp3")
self.playList.add("http://my-ftp.pl/mp3/2.mp3")
self.playList.add("http://my-ftp.pl/mp3/3.mp3")
...
self.play(url: URL(string:(playList[self.index] as! String))!) 

我正在寻找如何在不输入整个路径的情况下获取所有 (*.mp3) URL ( http://my-ftp.pl/mp3 ) 文件夹元素的任何想法。

4

2 回答 2

0

对不起,伙计们,但我做到了。

 func getMp3() {

        let url = URL(string: "http://not-my-ftp-just-simple.com/mp3")!

        let task = URLSession.shared.downloadTask(with: url) { localURL, urlResponse, error in
            if let localURL = localURL {
                if let string = try? String(contentsOf: localURL) {

                    let regex = try! NSRegularExpression(pattern:"href=(.*?)>", options: [])
                    var results = [String]()

                    regex.enumerateMatches(in: string, options: [], range: NSMakeRange(0, string.utf16.count)) { result, flags, stop in
                        if let r = result?.range(at: 1), let range = Range(r, in: string) {

                            if (String(String(string[range]).toLengthOf(length: 1).dropLast())).contains(".mp3"){
                            results.append(String(String(string[range]).toLengthOf(length: 1).dropLast()))
                            }

                        }
                    }

                    print(results)
                }
            }
        }
        task.resume()
    }
于 2018-11-30T21:19:10.187 回答
0

无法获取远程文件夹的内容,但您可以

var counter = 1

func getMp3(_ url:URL) {

API.load(url) { (response,data,error) in

   if let data = data { 
      // use data
      coounter += 1
     getMp3(urlWithNewCounter)
   }

}
于 2018-11-30T14:19:17.257 回答