OSStatus 错误 1685348671 AVAudioPlayer

Posted

技术标签:

【中文标题】OSStatus 错误 1685348671 AVAudioPlayer【英文标题】:OSStatus error 1685348671 AVAudioPlayer 【发布时间】:2016-11-02 20:49:06 【问题描述】:

我正在尝试使用 Alamofire 下载 mp3 文件并将其保存到所需位置。然后,从那个位置,我试图播放那个文件,但它给了我一个错误。

这是下载功能

func downloadSong(song: Song, completion: @escaping(Bool) -> ()) 

        var headers: HTTPHeaders = [:]

        if let authorizationHeader = Request.authorizationHeader(user: Constants.authName, password: Constants.authKey) 
            headers[authorizationHeader.key] = authorizationHeader.value
        

        let destination: DownloadRequest.DownloadFileDestination =  _, _ in
            let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
            let fileURL = documentsURL.appendingPathComponent("\(song.getID()).mp3")

            return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
        

        Alamofire.download(APIEndpoint.Song(id: song.getID(), token: self.authToken!).path(), method: .get, headers: headers, to: destination).response  (response) in
            if response.error == nil, let filePath = response.destinationURL?.path 
                print(filePath)
                completion(true)
             else 
                completion(false)
            
        

    

这是一个播放功能

func playSong() 

        guard let songs = currentPlaylist?.getSongs() else  return 

        let song = songs[0]

        let documentsDirectoryURL =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

        let destinationUrl = documentsDirectoryURL.appendingPathComponent("\(song.getID()).mp3")
        print(destinationUrl)

        if FileManager.default.fileExists(atPath: destinationUrl.path) 
            print("The file already exists at path")

            do 
                try AVAudiosession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
                try AVAudioSession.sharedInstance().setActive(true)

                player! = try AVAudioPlayer(contentsOf: destinationUrl, fileTypeHint: AVFileTypeMPEGLayer3)

                player!.play()
             catch let error as NSError 
                print("error: \(error.localizedDescription)")
            
        

    

我想知道下载文件并保存然后播放的最佳做法。

【问题讨论】:

The error code sounds like theres something wrong with the file. 哦,谢谢,我不知道这个网站!那么,我应该如何使用 Alamofire 下载文件并将其保存为 mp3 文件,或者如何从目标 url 加载文件? 在我看来,您的代码中没有任何问题。确保文件是有效的 mp3,而不是像 404 页面或其他东西。 【参考方案1】:

我发现我输入了错误的 API url,所以它给了我无法播放的无效文件。

编辑:

来自后端的文件不是有效的 MP3 音频文件,这就是发生错误的原因。

【讨论】:

这对其他人没有帮助,请具体说明问题出在哪里,或者这是不可接受的答案。 这个答案现在很有用:我有同样的错误,可能数据没有正确保存

以上是关于OSStatus 错误 1685348671 AVAudioPlayer的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioPlayer 失败并出现错误“无法完成操作。(OSStatus 错误 2003334207。)”

操作无法完成。 (OSStatus 错误 -54。)

(OSStatus 错误 2003334207)从文件播放

ITLibrary:操作无法完成。 (OSStatus 错误 7011。)

Xcode 10 不会创建开发者签名证书,得到 OSStatus 错误 -2147416032

iOS AVAudioPlayer OSStatus 错误 -43