恢复AVPlayerstream播放的最后一个示例
我正尝试使用本地播放器(AVPlayer)在iOS上重现实时stream。 但是,我无法恢复播放。 停止播放并在几秒后恢复播放时,播放将从暂停的那一刻开始,而不是再现实时stream的当前(最后一个)样本。
有没有办法得到最后一个样品,oconfigurationAVPlayer从最后一个样品点击播放button时重现?
我的解决scheme是基于拒绝用户保持播放器暂停。 这是每次播放恢复时都会损坏播放器。 并且每次创build一个新的实例,播放都打算重新开始。
根据苹果的build议,知道AVPlayer是否停止的唯一解决scheme是添加KVO。 这是:
- (void)setupPlayer { AVPlayer *player = [AVPlayer playerWithURL:streamURL]; AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init]; playerViewController.player = player; self.playerViewController = playerViewController; [self configureConstraintsForView:self.playerViewController.view]; //Add Player to View [self setupObservers]; [player play]; } - (void)setupObservers { [self.playerViewController.player addObserver:self forKeyPath:@"rate" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL]; } - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey, id> *)change context:(void *)context if ([keyPath isEqualToString:@"rate"] && self.playerViewController.player.rate == CGPointZero.x) { [self.playerViewController.view removeFromSuperview]; [self.playerViewController.player removeObserver:self forKeyPath:@"rate"]; [self.playerViewController.player pause]; self.playerViewController = nil; } }
然后,当用户想要重新使用播放器时,只需要调用-(void)setupPlayer
来从最后的现场采样开始播放。
- 同时下载和播放从多个URL拼凑在一起的歌曲
- 如何让我的AVPlayer在应用程序在后台播放?
- 即使allowExternalPlayback设置为NO,AVPlayer:AirPlaybutton也会显示在控制中心中
- AVPlayer – 在播放时切换stream的质量
- 线程1:加载AVPlayer时EXC_BAD_ACCESS(code = EXC_I386_GPFLT)
- 在endInterruption调用AVAudioSessionDelegate,但不调用beginInterruption
- Apple TV上的AirPlay元数据(AVPlayer – MPVolumeView)
- 在AVQueuePlayer中检测当前项目并知道它何时更改?
- 时间轴AVPlayer进度条