iOS 9:带有AVPlayer的旧项目已停止播放视频-无错误消息
当我打开一个非常依赖AVPlayer的老项目时,这个问题就出现了:没有视频显示或播放,尽管没有控制台消息显示,代码方面的事情看起来很正常。这里有一些代码向我展示了这个问题:iOS 9:带有AVPlayer的旧项目已停止播放视频-无错误消息,ios,avfoundation,ios9,avplayer,Ios,Avfoundation,Ios9,Avplayer,当我打开一个非常依赖AVPlayer的老项目时,这个问题就出现了:没有视频显示或播放,尽管没有控制台消息显示,代码方面的事情看起来很正常。这里有一些代码向我展示了这个问题: AVPlayer *player = [AVPlayer playerWithURL: [[NSBundle mainBundle] URLForResource:@"IMG_8481" withExtension:@"MOV"]]; AVPlayerLayer *player
AVPlayer *player = [AVPlayer playerWithURL: [[NSBundle mainBundle] URLForResource:@"IMG_8481" withExtension:@"MOV"]];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer: player];
[self.layer addSublayer: playerLayer];
[player play];
我不确定这里出了什么问题,但我没有视频播放
我检查过的东西:
-该层可见(通过设置其背景色进行检查)
-玩家不是零,也不是被释放
-播放机上的currentItem属性不是nil
-视频文件是在iPhone上录制的,然后通过图像捕获完成的,所以应该很好
有什么想法吗?我非常感激:)使用KVO监控玩家的状态。当您获得失败状态时,请检查AVPlayer的错误属性以了解更多信息。关于在上观察的信息 使用KVO可以通知玩家状态的更改,如下所示:
[self.playerItem addObserver:self
forKeyPath:@"status"
options:NSKeyValueObservingOptionNew
context:nil];
状态更改时将调用此方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if (object == self.playerItem && [keyPath isEqualToString:@"status"]) {
// you can get status here
}
}
如果您的代码在iOS 8中运行正常,但在iOS 9中运行不正常,则应确认应用程序传输安全设置。
见: