【问题标题】:I am downloading an audio file and saving it in directory but I couldn't play it. (OSStatus error 2003334207.)我正在下载音频文件并将其保存在目录中,但无法播放。 (OSStatus 错误 2003334207。)
【发布时间】:2019-07-17 07:27:12
【问题描述】:

这是我下载的代码

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

【问题讨论】:

    标签: swift avplayer osstatus


    【解决方案1】:
    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)
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 2019-06-07
      • 1970-01-01
      • 2019-11-26
      • 2014-10-26
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多