• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - AVPlayer 在缓冲区已满并重新开始时停止播放

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:37:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 Collection View ,其中有一个 AVPlayer 在单元格内,并且 AVPlayer 开始循环播放 AVPlayerItem

-(void)scrollViewDidEndDeceleratingUIScrollView *)scrollView

被调用。这很好用,但问题是在 AVPlayer 播放该项目几次后,视频不再显示,但我能听到它的声音。 我还为像这样播放的每个项目添加了值 @"playbackBufferFull" 的观察者:

[item addObserver:self forKeyPath"playbackBufferFull" options:NSKeyValueObservingOptionNew context:nil];

我注意到当视频停止时,值 @"playbackBufferFull" 的观察者方法被调用,首先我想知道是什么导致缓冲区变满,第二个也是最重要的重要的是如何在视频停止时恢复 AVPlayer ; 我尝试调用 [cell.videoPlayer play]; 并用新项目替换该项目,但它不起作用,观察者方法:

- (void)observeValueForKeyPathNSString *)keyPath ofObjectid)object
                                    changeNSDictionary *)change contextvoid *)context {


                if ([object isKindOfClass:[AVPlayerItem class]] && [keyPath isEqualToString"playbackBufferFull"])
                {
                  //this method is get called when the video stop showing but i can still hear it
                 //how can i resume the video?
                }

            }



Best Answer-推荐答案


我的解决方案是:

首先在 viewDidLoad 中为 AVPlayerItemPlaybackStalledNotification 添加观察或 ...

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selectorselector(playerItemDidReachEnd
                                             name:AVPlayerItemPlaybackStalledNotification
                                           object:self.avPlayer.currentItem];

-(void)playerItemDidReachEndNSNotification*)noti

{
//thisisn't good way but i can't find the best way for detect best place for resume again.
NSLog(@"\n\n give Error while Streaminggggg");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [self.avPlayer play];
 });
}

但是 也许您可以找到再次调用 play 方法进行恢复的最佳方法! 请检查您是否获得 AVPlayerStatusReadyToPlay key 补丁? 如果你得到 ,你可以在那里调用 play 方法。 请通知我结果

关于ios - AVPlayer 在缓冲区已满并重新开始时停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845057/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap