Ios AVPlayer和AVFoundationErrorDomain代码=-11819
我正在开发一个应用程序,通过AVPlayer使用云服务中的歌曲播放音乐。一切正常,大多数文件都在播放,没有任何问题 最近,我从特定文件中收到一个错误,由于来自AVPlayer的消息,我无法确定这是网络通信问题还是文件本身的编码问题: 错误域=AVFoundationErrorDomain代码=-11819“无法完成 操作“UserInfo=0x176abd80{nsLocalizedRecoverysSuggestion=重试 稍后,NSLocalizedDescription=无法完成操作} 通过查看文档,我发现代码11819表示:Ios AVPlayer和AVFoundationErrorDomain代码=-11819,ios,objective-c,avfoundation,avplayer,Ios,Objective C,Avfoundation,Avplayer,我正在开发一个应用程序,通过AVPlayer使用云服务中的歌曲播放音乐。一切正常,大多数文件都在播放,没有任何问题 最近,我从特定文件中收到一个错误,由于来自AVPlayer的消息,我无法确定这是网络通信问题还是文件本身的编码问题: 错误域=AVFoundationErrorDomain代码=-11819“无法完成 操作“UserInfo=0x176abd80{nsLocalizedRecoverysSuggestion=重试 稍后,NSLocalizedDescription=无法完成操作}
AVErrorMediaServicesWereReset
-由于媒体服务不可用,操作无法完成
以前有人经历过这种情况吗?在将avurlaste加载到AVPlayerItem之前,我使用以下方法找到了解决方案
- (void)LoadValuesSynchronouslyForkeys:(NSArray*)键完成处理程序:(void(^)(void))处理程序
它在特定曲目中崩溃的原因是,其中一些曲目包含mp3文件,并且没有立即可用的有关歌曲的所有信息(例如持续时间)。如前所述,
键是AVAsset上的属性。苹果在其文档中说,你应该在iOS中始终使用它(但我怀疑基于文件的视频是否需要它)
我为此而挣扎,最终这并不重要——但无论如何,这可能会对未来的某个人有所帮助:
asset = AVAsset(url: videoURL)
let keys = ["duration", "playable", "preferredRate", "preferredVolume", "hasProtectedContent", "providesPreciseDurationAndTiming", "metadata"]
asset.loadValuesAsynchronously(forKeys: keys) {
for key in keys {
var error: NSError? = nil
let status = self.asset.statusOfValue(forKey: key, error: &error)
print("KEY:", key, terminator: "")
switch status {
case .loading:
print(" Loading")
case .loaded:
print(" Sucessfully loaded, continue processing")
case .failed:
print(" Failed with error \(error!)")
case .cancelled:
print(" CANCELLED")
case .unknown:
print(" Unknown")
default:
print(" DEFAULT")
}
}
print("WAIT A BIT...")
DispatchQueue.main.async {
print("...RUN IT")
self.runMovie()
}
}
如果你不介意分享,你在这里传递哪些密钥来让它工作?只是持续时间?我希望这也能解决我的玩家问题。仅供参考…这并没有解决我的问题+答案是1