【发布时间】:2019-01-05 18:15:01
【问题描述】:
从网络服务器请求播放 mp3 文件时,如果该服务器返回 403 禁止,则在检查 AVPlayer 当前项目错误时不清楚如何处理该错误。
来自 AVPlayer 的错误消息并不表明它是 403...
2019-01-05 13:08:33.908316-0500 Runner[84043:3269818] 可选(错误 域=AVFoundationErrorDomain 代码=-11828 "无法打开" UserInfo={NSLocalizedFailureReason=此媒体格式不是 支持。, NSLocalizedDescription=无法打开, NSUnderlyingError=0x600000781290 {错误域=NSOSStatusErrorDomain 代码=-12847 "(null)"}})
错误表示不支持媒体,但从未访问过媒体。无论如何可以从 AVPlayer 请求中看到 HTTP 错误代码?
在 Android 上测试同一个文件时,我能够正确地看到来自 Android 原生 MediaPlayer 的 403 错误代码(来自 Android 的错误比 iOS 的 AVPlayer 更好、更有用)。
由于缺乏适当的错误消息,因此很难优雅地向用户显示准确的错误。
任意代码示例:
let url = URL(string: "some 403 server url")
let playerItem:AVPlayerItem = AVPlayerItem(url: url!)
player = AVPlayer(playerItem: playerItem)
player.play()
检查错误将打印上面引用的消息。
NSLog("\(String(describing: player.currentItem?.error))")
【问题讨论】:
-
请分享一些代码
-
添加了一些任意代码,代码很简单。