首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer seekToTime:不使用缓冲区

AVPlayer seekToTime:不使用缓冲区
EN

Stack Overflow用户
提问于 2013-05-23 08:06:42
回答 2查看 1.7K关注 0票数 5

我正在开发一个使用HTTPLiveStreaming技术播放视频的应用程序。

为此,我使用AVPlayer,如下所示:

[[AVPlayer alloc] initWithURL:[NSURL URLWithString:VIDEO_URL]];

然后,我使用self.player.currentItem.loadedTimeRanges检查缓冲区的状态,并在我的自定义视图中显示这个范围。

问题是,当在一个由[self.player seekToTime:timeToSeek toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];加载的区域中回绕时,加载视频就像它不在缓冲区中一样开始。

EN

回答 2

Stack Overflow用户

发布于 2014-04-01 09:19:13

首先,我的答案假设您使用作为静态m3u8列表,否则在视频中查找就没有什么意义了。

可能原因

使用m3u风格的播放列表,它嵌入子播放列表。每个子播放列表显示不同的视频质量,AVPlayer根据网络速度选择使用哪一个。

但是,根据苹果的文档的说法,当玩家开始播放时,它首先选择第一个子播放列表,只有在播放了几个ts文件之后,它才会选择上面描述的适当的子播放列表。

所以这可能是当你寻求一个特定的时间,玩家首先尝试播放第一个子列表,而不是缓存。

建议解决方案

尝试以下几点:

  1. 将m3u8流更改为只有一个子流。
  2. 对公差使用kCMTimeZero以外的值,即CMTimeMake(30, 60)
  3. 监视网络调用,查看播放器下载的确切内容以及何时可以使用查尔斯代理
票数 3
EN

Stack Overflow用户

发布于 2014-04-01 13:02:43

尝试使用StitchedStreamPlayer开发人员库中提供的示例代码作为您的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16708696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档