ios – 错误域= NSOSStatusErrorDomain代码= 1954115647“(null)”

前端之家收集整理的这篇文章主要介绍了ios – 错误域= NSOSStatusErrorDomain代码= 1954115647“(null)”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个AVAudioPlayer,有时它工作得很好,但有时它会输出错误“Error Domain = NSOSStatusErrorDomain Code = 1954115647”(null)“”.这是代码

override func viewDidLoad() {
    super.viewDidLoad()
    downloadFileFromURL(url: URL(string: mainPreviewURL)!)
}

func downloadFileFromURL(url: URL) {
    var downloadTask = URLSessionDownloadTask()
    downloadTask = URLSession.shared.downloadTask(with: url,completionHandler: {
        customURL,response,error in

        self.play(url: customURL!)
    })
    downloadTask.resume()
}

func play(url: URL) {
    do {
        player = try AVAudioPlayer(contentsOf: url)
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        player!.prepareToPlay()
        player!.play()
    } catch {
        print(error)
    }
}

解决方法

使do语句中的代码如下所示:

let songData = try NSData(contentsOfURL: songURL!,options: NSDataReadingOptions.mappedIfSafe)
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    try AVAudioSession.sharedInstance().setActive(true)
    player = try AVAudioPlayer(data: songData!,fileTypeHint: AVFileTypeMpegLayer3)
    player!.prepareToPlay()
    player!.play()

猜你在找的iOS相关文章