1

这是我正在下载的代码

if let audioUrl = URL(string: UrlTextfield.text!) {

        // then lets create your document folder url
                        let documentsDirectoryURL =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
//            let documentsDirectoryURL  = URL(fileURLWithPath: Bundle.main.resourcePath!)

        // lets create your destination file url
        let destinationUrl = documentsDirectoryURL.appendingPathComponent(audioUrl.lastPathComponent)

        print(destinationUrl)


        // to check if it exists before downloading it
        if FileManager.default.fileExists(atPath: destinationUrl.path) {
            print("The file already exists at path")

            // if the file doesn't exist
        } else {

            // you can use NSURLSession.sharedSession to download the data asynchronously
            URLSession.shared.downloadTask(with: audioUrl) { location, response, error in
                guard let location = location, error == nil else { return }
                do {
                    // after downloading your file you need to move it to your destination url
                    try FileManager.default.moveItem(at: location, to: documentsDirectoryURL)

                    print("File moved to documents folder")
                    self.gettingSongNames()

                } catch {
                    print("Error is \(error.localizedDescription)")
                }
                }.resume()

在这里,我在 tableview 单元格中播放它

let audioPath =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
        let audioPath1 = audioPath.appendingPathComponent(songs[indexPath.row])

        try audioPlayer = AVAudioPlayer(contentsOf: audioPath1)
        audioPlayer.play()

        thisSong = indexPath.row
        audioStaff = true
4

1 回答 1

0
let audioFileURL = NSURL(fileURLWithPath: destinationUrl.path)


do {
            audioFile = try AVAudioPlayer(contentsOf: audioFileURL as URL )

            audioFile.enableRate = true
            audioFile.prepareToPlay()
            audioFile.play()

        } catch let err as NSError {
            print(err.debugDescription)
        }
于 2019-07-17T07:50:09.203 回答