我使用 AVPlayer 来流式传输轨道。我正在尝试处理所有错误,例如网络不可用或流式传输不可用
但是我找到了这种错误的任何处理程序。
我已经为 avplayer 的状态添加了一个 KVO。
[self.player addObserver:self forKeyPath:@"status" options:0 context:nil];
但即使流不存在(例如:url 错误),状态切换到 AVPlayerStatusReadyToPlay。
编辑
解决方案是使用 AVPLayerItems 并使用 AVQueuPlayer。另一个问题是我在每个轨道上重新分配了这个播放器。
最佳答案
使用 NSKeyValueObservingOptionNew 将 KVO 添加到 AVPlayerItem 而不是 AVPlayer。
[playerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:NULL];
[self.player replaceCurrentItemWithPlayerItem:playerItem];
关于error-handling - 如何使用 AVPlayer 处理流媒体错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24004313/